我截取了短信中的一些信息。然後,在我的SmsListener中,我正在創建通知以顯示在狀態欄中。 然後,當用戶點擊一個通知我想如何將活動帶到前臺(或創建如果不存在)?
- 從SMS
- 帶來MainActivity到前臺(如果這樣的活動不存在但它應該創建)
- 傳遞給它的數據進行一些用戶界面改變這種MainActivity在此基礎上的數據
我的活動定義爲
<activity
android:name=".MainActivity"
android:screenOrientation="sensor"
android:label="@string/app_name"
android:launchMode="singleTask"/>
活動的推出,
Intent i = new Intent();
i.setClass(context, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
而且在我的活動我已重寫方法onNewActivity
@Override
public void onNewIntent(Intent intent){
super.onNewIntent(intent);
// I have data from broadcast in intent variable passed to this activity
processDataFromBroadcast(intent);
}
它的工作原理,如果在MainActivity已經存在正常,但如果MainActivity不存在啓動然而onNewIntent不叫做
然後我試着從onCreate調用processDataFromBroadcast:processDataFromBroadcast(getIntent())
。 首次將數據從我的廣播正確傳遞到活動。 但是,如果MainActivity被髮送到後臺,然後再次被帶到前臺,onCreate或onNewIntent被調用,並且processDataFromBroadcast被再次執行,意圖通過廣播發送,因此我的MainActivity被來自廣播的數據更新,每次該應用程序帶到前臺 - 後者是不需要的,我怎麼能讓我的活動在第一次處理後忘記這個意圖。 Here is sample application.
感謝您的迴應。不過,請參閱我對該問題的更新。 – Solvek 2011-02-05 12:13:40