我有一個從activity/fragment,MainActivity啓動的服務。從該服務的廣播填充列表。用戶可以單擊一個列表項並在細節活動/片段DetailActivity中查看項目詳細信息。該服務將生成一個或多個與列表中的項目相對應的通知,因爲它們已添加。操作來自服務的backstack
通過拉下通知並點擊其中一個通知,用戶可以直接進入細節活動/片段DetailsActivity。
我已經設置了清單以指示正確的父活動,並使用stackBuilder(As seen here)將pendingIntent添加到了堆棧中。
當從通知中啓動DetailsActivity,使用後退按鈕銷燬活動時,我最終返回到啓動器,而不是在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>
如果您發現任何解決方案,請分享。請注意你的答案,以便解決問題。 [本指南](http://stackoverflow.com/help/how-to-answer)可能會對您感興趣。 – 2014-03-21 12:35:35