我想知道应用程序在后台运行时的启动方式,或者在通知到达时被杀死。
我已将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而不是点击通知时,由于从通知收到的捆绑数据,它仍然是启动特定屏幕。我不想那样做。仅在点击通知时启动特定屏幕。我怎样才能做到这一点?