2010-11-29 25 views
0

私はSMS_Receiveインテントフィルタを使用し、SMSの受信に基づいてアプリケーションを使用していますが、ほとんど計算はしません。着信SMSには特別なタグがあり、アンドロイド画面のデスクトップにトーストが表示されますが、アプリケーションを完全に閉じるにはどうすればいいですか?Androidアプリケーションは終了後もまだ動作しています

+0

[BroadcastReceiverを無効にする]の複製が可能です(http://stackoverflow.com/questions/3096246/set-broadcastreceiver-to-be-inactive) – EboMike

答えて

3

あなたはAndroidアプリケーションを終了しません。これをオペレーティングシステムに任せてください。プロセスは、OSがより多くのリソースを必要とすると判断するまで(休眠中でも)アクティブのままです。それより圧倒してはいけません。いくつかのアプリはそうし、彼らは吸う。

"受信したSMSにアプリケーションがまだ応答しています"という意味を理解できません - 放送受信機をお持ちですか?その場合、受信機は常にアクティブです。これは設計によるものです。それを実行したくない場合は、ブロードキャスト受信機にブロードキャストを無視させたいときはいつでもフラグをどこかに格納して(たとえば、SharedPreferences)、それをfalseに設定します。

編集:これは実際には偽薬です。よりエレガントな解決のために、この答えを確認してください:Set BroadcastReceiver to be inactive

+0

はい、私はBrodcast受信機を使用していますアプリケーション終了時に閉じますか? –

+0

ええ@Ahmedは、HOMEを押すとアプリを閉じることができないことを理解しているだけです.Appは、BACKを押すまで生き残ります。 – 100rabh

+0

はい、私は押して、アプリケーションのブロードキャストレシーバーはまだアクティブですが、私はそれを閉じるには? –

1

別のアプローチは、registerReceiverを使用して、アクティビティのOnStartメソッドまたはOnResume方法であなたのBroadcastReceiverを登録し、unregisterReceiverを使用してOnStopかOnPauseでそれを登録解除することです。マニフェストでBroadcastReceiverを宣言する代わりにこれを行います。

これを押すと、アクティビティが表示されていないときにブロードキャストレシーバの登録が解除されます。

+0

私は思っています - 最初にあなたの携帯電話を再起動したときに受信機はアクティブにならないでしょうか? (マニフェストファイルで 'android:enabled =" false "'でタグ付けしない限り) – EboMike

+0

いいえ、私はマニフェストにレシーバを全く登録せず、すべてコードでそれをやっているということです。 – dhaag23

関連する問題