2011-06-16 43 views
0

我正在使用Android-C2DM,當我收到一條消息被推送到我的設備時,我想要更新顯示(如果某個活動在屏幕上可見)或創建狀態欄通知(如果沒有) 。Android:如何開始一個新的活動,但只有它已經存在?

除檢查活動是否處於活動狀態外,其他所有工作均有效。我正在尋找的是一種方法來檢查一個活動是否活動(然後我可以用下面的代碼將if聲明包含在下面),或者如果這是不可能的,我想我需要一個不同的方式去完成整個過程。

在C2DMBaseReceiver:

Intent i = new Intent(context, Show.class); 
i.putExtra("id", id); 
i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(i); 

在Show.java:

@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 
    Log.v(TAG, "onNewIntent"); 
    // Update the display 
} 

回答

1

有一個全球性的,它指向的是要了解該消息的活動。在你的活動中,當你在屏幕上(恢復)時設置。在您的接收器中,如果已設置,請調用該活動,否則將狀態欄中的通知放入。

您可以對此模式進行更多的正式實現,但僅使用全局很簡單,而且對於大多數情況下足夠。

+0

不錯的主意。謝謝。 – 2011-06-16 04:04:39

相關問題