6

サービスから多くの通知を生成しているアプリケーションがあります。通知ごとに保留中のインテントがあります。また、ホームボタンを押すと、次のコードを使用してアプリケーションとサービス全体が停止します。

System.exit(0);

保留中のインテントの起動は成功しますが、ホームボタンを押した後、アプリを再度起動すると、黒い画面が表示されて終了します。興味深いことに、アプリアイコンをもう一度クリックすると、正常に再起動します。アクティビティが開始されない場合保留中のインテントを使用して、ホームボタンを押し、すべてを再起動すると正常に機能します。

理由は何ですか?どんな助けでも大歓迎です..

4

1 に答える 1

0

あなたのサービスがあなたの活動より長生きすることになっていないのなら、あなたはサービスを全く必要としないかもしれません。あなたの説明から、あなたは活動から直接すべてを行うことができるように見えます。

並行性が必要な場合は、AsyncTaskを検討してください。

それでもサービスが最適なオプションである場合は、System.exit()の代わりにContext.stopService()を使用し、サービスのonDestroy()でバックグラウンドスレッド/通知をクリーンアップする必要があります。

于 2012-09-14T06:33:04.930 に答える