2013-11-27 54 views
0

我想通過startActivity(...)方法從服務發送一個Intent。 如果活動正在運行(和/或暫停),我也希望收到這個意圖 如果活動未運行,我不想啓動它,我希望意圖丟失。 是否有可能實現這樣的行爲?是否有可能意圖不開始新的活動,但只能由現有的活動接受?

+0

我相信你可以使用這個廣播(http://developer.android.com/reference/android/support/v4/內容/ LocalBroadcastManager.html) – RocketSpock

回答

0

讓您的活動在onCreate()中註冊BroadcastReceiver,並在onPause()中取消註冊。這將確保您的接收器僅在您的活動期間處於活動狀態。

public void onStart() { 
    mBroadcastReceiver = new MyBroadcastReceiver(...); 
    registerReceiver(mBroadcastReceiver, filter); 
} 
... 
public void onPause() { 
    unregisterReceiver(mBroadcastReceiver); 

registerReceiver在上下文中定義。

0

如果活動沒有運行,我不想啓動它,

我不知道的部分,但如果你不希望創建同一活動時的另一個實例已經有一個人跑來,你可能想嘗試android:launchMode="singleTask"你的清單:

<activity 
    android:name=".MyActivity" 
    android:launchMode="singleTask"/>