2015-05-03 19 views
0

目前我使用的是一個Activity,它立即結束,從應用程序堆棧中拉出最後一個Activity如何創建只顯示頂級應用程序活動的待處理通知?

public class ViewlessActivity extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    finish(); 
    } 
} 

有沒有更好的解決方案?

UPDATE:

我跟着建議從David但不能使它工作等所要求的(它總是顯示在MainActivity)

這裏它創建掛起的意圖代碼:

Intent mainActivityIntent = new Intent(this.getApplicationContext(), MainActivity.class); 
mainActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
PendingIntent pendingMainActivityIntent = PendingIntent.getActivity(this.getApplicationContext(), 0, mainActivityIntent, PendingIntent.FLAG_CANCEL_CURRENT); 

AndroidManifest.xml集合android:launchMode="singleTop"對於MainActivity

回答

1

您擁有的解決方案很好。您也可以用Intent.FLAG_ACTIVITY_NEW_TASK再次啓動您的根Activity(ACTION = MAIN和CATEGORY = LAUNCHER)。如果您的應用程序已經在運行,那麼這隻會將現有任務放到前臺而不會啓動任何新的Activity

+0

問題是我需要顯示上次使用的活動(類似於什麼任務切換器在做什麼),並且對於您的提議,我總是會顯示啓動器活動,對嗎? –

+1

不是。它將任務向前推進,最後一次顯示「活動」。就像你想要的一樣。如果你的應用程序根本沒有運行,唯一一次它會顯示啓動程序「Activity」。 –

+0

我想我做錯了那麼 - 它總是顯示我的應用程序的主要活動。我只是用代碼來更新問題,顯示我是如何做到的。任何意見高度讚賞。 –

0

在代碼里加入的MainActivityonCreate方法是應用程序打開時將要推出的第一個活動:

if (!isTaskRoot()) 
{ 
    finish(); 
    return; 
} 

另外,記得通知的PendingIntentIntent使用MainActivity

我希望這可以幫助你。

相關問題