【发布时间】:2013-04-29 21:34:46
【问题描述】:
我有一个从活动/片段 MainActivity 启动的服务。从服务的广播中填充一个列表。用户可以单击列表项并在详细信息活动/片段 DetailsActivity 中查看项目详细信息。该服务将生成一个或多个与列表中的项目相对应的通知,因为它们被添加。
用户可以通过下拉通知并单击其中一个通知来直接转到详细信息活动/片段 DetailsActivity。
我已设置清单以指示正确的父活动,并使用 stackBuilder (As seen here) 将 pendingIntent 添加到后台堆栈。
当从通知启动 DetailsActivity 时,使用后退按钮销毁 Activity,我最终会回到启动器,而不是我想要的 MainActivity。我哪里出错了?
这是 Android 4.03 版
这是创建通知的服务中的代码:
Context ctx = getBaseContext();
Intent notificationIntent = new Intent(ctx, DetailsActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(ctx);
stackBuilder.addParentStack(MainActivity.class);
stackBuilder.addNextIntent(notificationIntent);
PendingIntent contentIntent = stackBuilder.getPendingIntent(uniquePendingIntentID, PendingIntent.FLAG_UPDATE_CURRENT);
mNotificationMgr = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = new NotificationCompat.Builder(ctx);
builder.setContentIntent(contentIntent)
.setSmallIcon(R.drawable.icon_small)
.setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.setContentTitle("New list item found")
.setContentText("Found a new list item: " + itemName)
.setPriority(Notification.FLAG_HIGH_PRIORITY);
mNotificationMgr.notify(Integer.parseInt(deviceId), builder.build());
感兴趣的清单项目是:
<activity
android:name="com.something.MainActivity"
android:icon="@drawable/icon_main"
android:label="@string/main_title"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.something.DetailsActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.something.MainActivity" />
</activity>
【问题讨论】:
标签: android android-activity notifications