纪录从通知栏中启动应用程序

采用极光推送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));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值