我在使用Leanback啓動器的Android TV上管理推薦(通知)時遇到了一些麻煩。從Android電視推薦恢復活動
我使用谷歌的樣品在這裏實現我自己:https://github.com/googlesamples/androidtv-Leanback
預期結果:
- 我對我的活動 「MainActivity」(與網頁視圖)
- 我按HOME,所以我在Leanback發射器上推薦包含地雷。
- 我按其中之一
- 恢復活動「MainActivity」,而不用新的額外的新Intent重新創建它。
其實,沒有重裝活動,該活動的恢復正常工作,創立的PendingIntent的下面:
private PendingIntent buildPendingIntent(Parcelable media, int id) {
Intent detailsIntent = new Intent(this, MainActivity.class);
detailsIntent.putExtra("media", media);
detailsIntent.putExtra("id", id);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(MainActivity.class);
stackBuilder.addNextIntent(detailsIntent);
return stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
}
當前的結果:
- 我對我的活動「 MainActivity「(使用webview)
- 我按HOME鍵,所以我在Leanback發射器上推薦包含地雷。
- 我按其中之一
- 我的活動通過extrat意圖值接收「onNewIntent」事件我總是使用相同的媒體。
此解決方案不起作用,因爲谷歌在示例代碼的註釋說:
// Ensure a unique PendingIntents, otherwise all recommendations end up with the same
// PendingIntent
detailsIntent.setAction(movie.getId());
所以區分所有recommandations,我必須設置動作以ID,否則,它會始終是發送給我的活動的最後一個pendingintent。這是我目前的行爲,我在「onNewIntent」中收到的意圖(最後一個)始終是相同的「媒體」和「ID」,無論我點擊哪個建議,我總是獲得相同的意圖。
但是,如果我將行爲設置爲「id」,則會重新創建活動「MainActivity」,以便恢復失敗,並且我的webview的上下文被清除了我的webview被重新加載:(但是我獲得了良好的意圖良好的媒體的額外意圖值。
你有一個解決方案,幫助我有我想要的嗎?
爲了簡化我的問題的行爲,我怎麼可以從與良好的PendingIntent建議恢復我的活動B無需重新加載我的活動?
在此先感謝您的幫助