0

我在使用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無需重新加載我的活動?

在此先感謝您的幫助

回答

0

我找到了解決方案。我不認爲這是好的,但它適用於我的情況。所以,如果我將id設置爲「resquetCode」,那麼Android認爲它是一個不同的Activity,並且不需要重新創建一個新的Activity就可以恢復它。