在我的应用中,我有一个活动A打开活动B.然后打开通知。单击通知后,它需要恢复应用程序。这就是问题所在。下面的代码恢复活动B并起作用。但这假设即使最小化,应用程序仍在运行。
但是如果用户关闭应用程序,然后单击通知,它将打开活动B,然后崩溃,因为由于未运行A,因此某些事情未设置为B运行。
基本上我需要一种方法来检查应用程序是否正在运行,如果不是,则打开A,否则打开B.
有谁知道怎么做?
谢谢
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Intent notIntent = new Intent(context, SpeciesScreen.class);
notIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pIntent = PendingIntent.getActivity(context.getApplicationContext(), 0, notIntent, 0);
Notification noti = new Notification.Builder(context)
.setContentTitle("Scan Complete")
.setSmallIcon(R.drawable.ic_launcher)
.setContentIntent(pIntent)
.setAutoCancel(true)
.build();
notificationManager.notify(0, noti);
答案 0 :(得分:0)
使用此.. notIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 用新的任务开始这项活动。
答案 1 :(得分:0)
您可以通过在活动中添加try catch来执行此类工作B.在活动B中使用try和catch,如果在catch部分中未正确初始化活动,则使用意图来运行活动A.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try{
initForm();
} catch (Exception e) {
Intent i = new Intent(context, A.class);
startActivity(i);
finish();
}
}