我的Android应用程序生成通知。此通知以下列方式定义:
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_action_alarms)
.setContentTitle("title")
.setContentText("example text");
Intent resultIntent = new Intent(this, MyActivity.class);
PendingIntent resultPendingIntent = PendingIntent.getActivity(this,0,resultIntent,PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
因此,当我打开通知抽屉并单击通知区域时,活动MyActivity将启动。但是,如果MyActivty的另一个实例已在运行,我会获得两个MyActivty实例同时运行,而我希望它总是只有一个实例,在我的应用程序中运行。
我尝试过使用
android:launchMode="singleTop"
android:clearTaskOnLaunch="true"
但结果是一样的。
我该如何完成这项任务?
答案 0 :(得分:1)
最终,您可能需要考虑使用Fragments,而不是活动来实现您想要的UI交互(实际上NavDrawer的工作方式 - 以及官方示例实现它的方式)。
您可以使用不同的意图标记将旧的Activity带回到前面,但这实际上并不是您最终需要的行为(与Fragment相关)。
Ex Intent Flags
Intent intent = new Intent(this, ActivityExamlpe.class);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);