61 lines
2.1 KiB
Java
61 lines
2.1 KiB
Java
package com.gh.gamecenter.receiver;
|
|
|
|
import android.content.BroadcastReceiver;
|
|
import android.content.ComponentName;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
|
|
import com.gh.common.util.PackageUtils;
|
|
import com.gh.common.util.RunningUtils;
|
|
import com.gh.gamecenter.DownloadManagerActivity;
|
|
import com.gh.gamecenter.SplashScreenActivity;
|
|
import com.gh.gamecenter.eventbus.EBMiPush;
|
|
|
|
import de.greenrobot.event.EventBus;
|
|
|
|
/**
|
|
* Created by LGT on 2016/10/10.
|
|
*/
|
|
public class InstallReceiver extends BroadcastReceiver {
|
|
|
|
@Override
|
|
public void onReceive(Context context, Intent intent) {
|
|
String path = intent.getStringExtra("path");
|
|
if (PackageUtils.isCanLaunchSetup(context, path)) {
|
|
context.startActivity(PackageUtils.getInstallIntent(path));
|
|
} else {
|
|
if (RunningUtils.isRunning(context)) {
|
|
if (RunningUtils.isEqualsTop(context, DownloadManagerActivity.class.getName())) {
|
|
// 这里是指从后台返回到前台 前两个的是关键
|
|
Intent intent2 = new Intent();
|
|
intent2.setAction(Intent.ACTION_MAIN);
|
|
intent2.addCategory(Intent.CATEGORY_LAUNCHER);
|
|
intent2.setComponent(new ComponentName(context, DownloadManagerActivity.class));
|
|
intent2.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
|
|
| Intent.FLAG_ACTIVITY_NEW_TASK
|
|
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
|
|
context.startActivity(intent2);
|
|
EventBus.getDefault().post(new EBMiPush("plugin_install", path));
|
|
} else {
|
|
Intent intent2 = new Intent(context,
|
|
DownloadManagerActivity.class);
|
|
intent2.putExtra("currentItem", 0);
|
|
intent2.putExtra("path", path);
|
|
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
context.startActivity(intent2);
|
|
}
|
|
} else {
|
|
// 应用未在运行
|
|
Intent intent2 = new Intent(context, SplashScreenActivity.class);
|
|
intent2.setAction(Intent.ACTION_MAIN);
|
|
intent2.addCategory(Intent.CATEGORY_LAUNCHER);
|
|
intent2.putExtra("from", "plugin_install");
|
|
intent2.putExtra("path", path);
|
|
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
context.startActivity(intent2);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|