从 Android 开发,我通过示例代码实现了一个简单的通知,但是在我的应用程序中,我不想重新创建意图并再次创建活动,我只想回到我的上一个活动(它是一个媒体播放器 UI)。如果我使用示例代码,它将创建一个新活动
Intent resultIntent = new Intent(this, ResultActivity.class);
我评论了有关新意图的相关代码并收到了通知,但不知道如何回到我的上一个活动......
从长按主页键返回我的应用程序并触摸我的应用程序就可以了。我想要的就是这种行为。
bleow 是来自 Android Development 的示例代码,我评论了新的意图部分。
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle("My notification")
.setContentText("Hello World!");
/*Intent resultIntent = new Intent(this, ResultActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(ResultActivity.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(
0,
PendingIntent.FLAG_UPDATE_CURRENT
);
mBuilder.setContentIntent(resultPendingIntent);*/
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(mId, mBuilder.build());
[更新]
我想我需要为活动的意图和属性设置标志。因此,对于我想回到我设置的活动
android:launchMode="singleInstance"
因为,我不想要一个来自意图的新活动,我只想要我的最后一个活动,所以我添加
Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY
从文档中我了解到,使用Pendingintent.contentIntent它必须包含FLAG_ACTIVITY_NEW_TASK标志,并且在使用此标志时,如果您现在开始的活动已经在运行任务,则不会启动新活动;相反,当前任务将简单地以其上次所处的状态被带到屏幕的前面。所以我还添加
Intent.FLAG_ACTIVITY_NEW_TASK
但是从 logCat 中,我仍然看到,当我触摸返回活动的通知时,pendingintent 仍然调用 onCreate() 函数,而不仅仅是显示仍然“活着”的最后一个活动。