4

バックグラウンドスレッドを常に実行する必要があるアプリを作成しようとしています。(はい、それは推奨されていませんが、このアプリは一般的な市場向けに設計されておらず、バックグラウンドスレッドが間違いなくそれを行う唯一の方法です!)

だから私は(新しいプロセスとして)サービスを作成し、フォアグラウンドモードで開始します。そして、サービス内で、システムからのLogcat出力を監視するスレッドを開始します。

したがって、誰かがタスクマネージャに移動して[メモリのクリア]ボタンを押すまで、すべてが正常に機能します。

残念ながら、私はこの記憶をきれいに生き残る可能性を見つけることができませんでした。これを乗り切るためにサービスを取得するためにさまざまな方法を試しました。AlarmManagerに繰り返しアラームを設定しようとしましたが、それでもキャンセルされます。

私は何かを逃したと確信しています。この「メモリクリーン」ボタンを生き残るためにプロセス/スレッドを取得する方法について誰かアイデアがありますか?前もって感謝します。

4

1 に答える 1

2

だから私は(新しいプロセスとして)サービスを作成します

余分なプロセスを取り除いてください。それはあなたに何の価値ももたらさず、CPU、RAM、バッテリーを浪費しています。

したがって、誰かがタスク マネージャーに移動して [メモリの消去] ボタンを押すまで、すべてが正常に機能します。

Android には「タスク マネージャー」はなく、Android には「メモリのクリア」ボタンはありません。おそらく、特定のデバイス メーカーによって追加されたものを考えているでしょう。

私は何かを逃したと確信しています.プロセス/スレッドをこの「メモリクリーン」ボタンから生き残る方法を知っている人はいますか?

設定の実行中アプリ一覧で「メモリクリーン」と「強制停止」が同じ場合、「プロセス・スレッドを存続させる」ことができません。ユーザーは、任意のアプリケーションを終了することができます。実際、Android 3.1 以降では、"強制停止" は、後でユーザーがアクティビティの 1 つを手動で起動しない限り、アプリケーションが二度と実行されないことを意味します。

独自のネイティブ コード デーモン プロセスを使用して独自のファームウェアを作成することは大歓迎です。それらは「強制停止」することはできません。ただし、標準の SDK アプリケーションとしてインストールされているものはすべて強制停止できます。

于 2012-04-23T11:19:54.783 に答える