我目前正在編寫一個android應用程序,現在是時候實施通知了。我將在這裏看到的三個活動是MainActivity,MessageListActivity和MessageActivity。帶有通知的活動導航
這些都採用簡單的A> B> C格式。 B的父母設置爲A,C的父母設置爲B.正常的導航工作正常,並按預期做一切事情。這裏是下面的清單:
<activity
android:name=".activities.MainActivity"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".activities.MessageListActivity"
android:icon="@drawable/ic_action_email"
android:label="@string/title_activity_text"
android:launchMode="singleTop"
android:parentActivityName=".activities.MainActivity"
android:screenOrientation="portrait" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activities.MainActivity" />
</activity>
<activity
android:name=".activities.MessageActivity"
android:icon="@drawable/ic_action_read"
android:label="@string/title_activity_text_message"
android:parentActivityName=".activities.MessageListActivity"
android:screenOrientation="portrait" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activities.MessageListActivity" />
</activity>
的問題是我現在想要實現的通知,如果我出它作爲服務運行,所以我仍然可以接收郵件的應用程式。當收到一條新消息時,彈出窗口會顯示出來,我想點擊它,顯示MessageActivity(C),然後當向上或向後按下時返回MessageListActivity(B)。但是,我打開通知並按預期顯示了MessageActivity(C),但是當我向上或向後按下時,它將我帶到MainActivity(A)。它應該在這一點返回到MessageListActivity(B)!
澄清: -
- 通知出現
- 用戶點擊它
- 開出信用證
- 用戶按下回或向上
- B應該在現在開放的,但A打開來代替。
我在通知中創建一個堆棧中,如下圖所示:
Intent resultIntent = new Intent(NurseCallApplication.getContext(), MessageActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(NurseCallApplication.getContext());
stackBuilder.addParentStack(MessageActivity.class);
stackBuilder.addNextIntent(resultIntent);
resultIntent.putExtra("messageObject", message);
PendingIntent resultPendingIntent = PendingIntent.getActivity(NurseCallApplication.getContext(), 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
而且在我MessageActivity(C)並後退按鈕我有:
NavUtils.navigateUpFromSameTask(this);
在這點我真的只是把各種各樣的想法弄清楚,所以如果有不必要的部分,請原諒我!任何幫助將大規模讚賞!謝謝!