2011-09-13 45 views
1

我試圖阻止BroadcastReceiver一旦退出我的應用程序就顯示出來。到目前爲止,我只在安裝應用程序時才顯示Toast。它工作得很好,除了如果我退出應用程序接收器仍然活躍。 這是從AndroidManifest我的接收器代碼:Android Abort BroadcastReceiver

<receiver android:name=".MyBrowdcastreceiver" android:enabled="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.PACKAGE_ADDED" /> 
      <action android:name="android.intent.action.PACKAGE_INSTALL" /> 
      <data android:scheme="package" /> 
     </intent-filter> 
    </receiver> 

我想知道我應該把我的onDestroy()或者從我的主要活動的onStop()方法,將導致接收機停止。

謝謝。

回答

2

您已註冊清單文件的接收器將接收通知,即使你的應用程序是不是running.You可以做兩件事情,以滿足您的需要:

  1. 您需要註冊,註銷接收器編程。

  2. 你可以採取布爾值,如果應用程序運行,則設置爲true否則爲false。您可以在BraodcastReceiver的onReceive()方法上使用此布爾值,您需要檢查布爾值並在布爾值爲true時執行您的操作。

+1

如果實現了第一,第二隻適用... – ThaMe90

+0

我試圖以編程方式註冊接收這樣: BR =新MyBrowdcastreceiver(); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED); intentFilter.addAction(Intent.ACTION_PACKAGE_INSTALL); getApplicationContext()。registerReceiver(br,intentFilter); 但是,現在沒有顯示烤麪包 –

+0

bebug並檢查您是否正在使用onReceive()方法獲取調用。 –