0

我正在開發一個android應用程序。它收到推送通知。我想在用戶打開通知時打開一個活動P.如何從推送通知中打開活動並忽略之前的應用程序狀態

我的應用程序具有的活動以下層次結構:

  1. 主要活動(M),其產生三個片段(F1,F2,F3)。
  2. F3裏面還有一個片段(F31)。 F31有一個列表視圖,顯示一些視頻列表。用戶可以在這裏播放任何視頻格式。
  3. 當用戶點擊F31中的任何視頻時,它將創建並播放視頻。

現在,當我收到推送通知並打開它時,我想要打開活動P。但我也希望當活動P啓動並且用戶按下後,它應該轉到F31。因爲P的父母是F31。

當用戶打開推送通知時,我的應用程序可以處於任何狀態。我的意思是用戶可以在F1或F2或F3。但是,當用戶打開推送通知時,它應該啓動活動P,並在後面按它應該去F31。 它應該忽略應用程序的以前的狀態。

我可以從推送通知中啓動活動P,但我不確定如何保證在回按時它將落在F31上。

請建議我該怎麼做?

回答

1

嘗試把此上的活動,P:

@Override 
public void onBackPressed() { 

    Intent intent = new Intent(this, M.class); 
    intent.putExtra("key", "goToF31"); 
    startActivity(intent); 
} 

而且在活動F公司第一件事情裏面onCreate

String signal = getIntent().getStringExtra("key"); 

    if (signal.equals("goToF31")) { 

     // open the F31 fragment 
     F31 f31 = new F31(); 
     fm.beginTransaction().replace(R.id.mainContainer, f31).commit(); 
    } 

的邏輯是把一個意圖的時候發售者點擊裏面的後退按鈕打開活動F和片段F31的視頻活動。 這可能會奏效,但要感覺正確,您必須放置動畫,使其看起來像回來。

0

如果你正在使用的PendingIntent試試這個----

// Use TaskStackBuilder to build the back stack and get the PendingIntent 
PendingIntent pendingIntent = 
    TaskStackBuilder.create(this) 
        // add all of DetailsActivity's parents to the stack, 
        // followed by DetailsActivity itself 
        .addNextIntentWithParentStack(upIntent) 
        .getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 
相關問題