簡體   English   中英

使用啟動器標志在活動中獲得待定的意圖

[英]Get pending intent extra in activity with launcher flag

在我的應用中,在某些情況下,我會顯示通知,當用戶單擊通知時,它會通過以下代碼導航至應用:

Intent onNotificationClicked = new Intent(G.context, MainActivity.class);
onNotificationClicked.putExtra("DO", "clicked");
onNotificationClicked.setAction(Intent.ACTION_MAIN);
onNotificationClicked.addCategory(Intent.CATEGORY_LAUNCHER);
PendingIntent ponNotificationClicked = PendingIntent.getActivity(ctx, 113, onNotificationClicked, PendingIntent.FLAG_UPDATE_CURRENT);
this.contentIntent = ponNotificationClicked;

現在我要在MainActivity中獲取此意圖的更多信息,但是該意圖不可用,因為該意圖不會產生新的活動,而只是將已啟動的活動置於最前面。因此,我該如何在我的應用程序中處理這種意圖。

謝謝

我找到了答案:

在您的活動清單中設置:

android:launchMode="singleTask"

然后針對您的待定意圖,您應進行以下設置:

Intent onNotificationClicked = new Intent(G.context, MainActivity.class);
onNotificationClicked.putExtra("DO", "clicked");
PendingIntent ponNotificationClicked = PendingIntent.getActivity(ctx, 113, onNotificationClicked, PendingIntent.FLAG_UPDATE_CURRENT);
this.contentIntent = ponNotificationClicked;

現在在您的活動中覆蓋onNewIntent並在其中編寫您的函數:

 @Override
protected void onNewIntent(Intent intent) {

    String action = intent.getStringExtra("DO");

    if (action != null) {
        Log.d("this is creating", "shiva said right");
        mSlidingLayout.setPanelState(SlidingUpPanelLayout.PanelState.EXPANDED);

    }
    super.onNewIntent(intent);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM