采用极光推送sdk.咋接收到通知后打开一个activity
Intent mIntent=new Intent(context,FrmUpdateActivity.class);
mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(mIntent);
在FrmUpdateActivity处理完一些程序后以后,返回不要退出程序而是启动该应用程序
在FrmUpdateActivity 中写如下代码
protected boolean isTopActivity() {
String packageName = getPackageName();
String className = getClassName();
LogUtil.e(tag, "getpackname=" + getPackageName()+"\t className="+getClassName(), false);
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasksInfo = activityManager.getRunningTasks(5);
if (tasksInfo.size() > 0) {
for (RunningTaskInfo runningTaskInfo : tasksInfo) {
LogUtil.d(tag,"包名" + runningTaskInfo.topActivity.getPackageName()+"\t 类名"+runningTaskInfo.baseActivity.getClassName(),false);
if (packageName.equals(runningTaskInfo.topActivity.getPackageName())) {
if (runningTaskInfo.baseActivity.getClassName().endsWith(className)) {
return false;
}
return true;
}
}
}
return false;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (!isTopActivity()) {
Intent i = getPackageManager().getLaunchIntentForPackage(
getPackageName());
if (i != null) {
LogUtil.e(tag, "i!=null", false);
startActivity(i);
}
}
this.finish();
return super.onKeyDown(keyCode, event);
}
调用为:
onKeyDown(KeyEvent.KEYCODE_BACK, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK));