2011-07-14 203 views
0

好的,所以我有一個應用程序需要接收傳入的短信,併發送短信給發件人。這我可以設置好。問題是,我只想讓廣播接收器在服務啓動時接收。我在服務中聲明瞭接收者類。我在onDestroy中銷燬引用(並註銷接收者)。當應用程序編譯並運行時,廣播接收器從不運行。如果我在清單中刪除它,它工作正常,但從不停止。接收器只是一直醒來和處理。廣播接收器問題

+0

我認爲這是因爲您的代碼中註冊廣播接收機時出現錯誤。你可以在這裏粘貼相關的代碼嗎? –

回答

0

你可以嘗試實現這個代碼:

<receiver android:name=".mystuff" android:enabled="false"> 

PackageManager pm = context.getPackageManager(); 
pm.setComponentEnabledSetting(
      new ComponentName(context, mystuff.class), 
      PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 
      PackageManager.DONT_KILL_APP); 

關閉

... PackageManager.COMPONENT_ENABLED_STATE_DISABLED ... 
+0

這很好。謝謝你,先生! – Ryan

0

有一點要提的是,你需要聲明接收文件在您明確表示。這實際上是通過手機註冊您的服務。根據API docs

一個BroadcastReceiver目的是僅適用於所述呼叫的持續時間,以的onReceive(上下文,意圖)。一旦你的代碼從這個 函數返回,系統就認爲該對象已經完成,不再是 活動。

所以我所做的是我在服務中定義我的onReceive(上下文,意圖)和註冊。希望這可以幫助。

+0

我這樣做了,但我並不總想讓它接收。但BrainCrash建議的解決方案效果很好。 – Ryan