当应用处于后台或被杀时,检测通知点击

时间:2018-03-21 04:33:52

标签: android bundle android-notifications android-pendingintent

我想知道应用程序在后台运行时的启动方式,或者在通知到达时被杀死。

我已将intent设置为根据通知中收到的数据打开特定活动。

if (moduleId == 1) {
    intent = new Intent(this, SchemesActivity.class);

} else if (moduleId == 2) {
    intent = new Intent(this, ProcedureActivity.class);

} else {
    intent = new Intent(this, NotificationsActivity.class);
}

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);

我知道当Android应用程序在后台或被杀时,当通知到达时,应用程序会在点击通知后从启动器屏幕启动。

以下是启动画面中的代码,用于处理应用程序被杀/背景时的通知

Bundle bundle = getIntent().getExtras();
if (bundle != null) {
    int moduleId = bundle.getInt("Module_id");
    Intent intent;

    if (moduleId == 1) {
        intent = new Intent(this, SchemesActivity.class);

    } else if (moduleId == 2) {
        intent = new Intent(this, ProcedureActivity.class);

    } else {
        intent = new Intent(this, NotificationsActivity.class);
    }
    startActivity(new Intent(intent));
    finish();
} else {
    Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            startActivity(new Intent(SplashActivity.this, MainActivity.class));
            finish();
        }
    }, 1500);
}

但是当我从启动器图标启动app而不是点击通知时,由于从通知收到的捆绑数据,它仍然是启动特定屏幕。我不想那样做。仅在点击通知时启动特定屏幕。我怎样才能做到这一点?

0 个答案:

没有答案