2

私はIntentServiceが大好きで、サービスを作成する必要があるときはいつでもそれを使用しようとしています。

ただし、アプリケーションの起動時に、少なくとも1回は長いタスク(約4秒)を実行する必要があります。タスクは、rawリソース(証明書)をロードし、それをすべてのWebサービス呼び出しに使用することです。現在、Webサービス呼び出しが行われるたびにロードしていますが、これは明らかに実際の解決策ではありません。

IntentServiceはステートレスであるため、リクエスト間で証明書を保持できません。「通常の」サービスを作成し、ライフサイクルを慎重に実装して、証明書をいつ(再)ロードする必要があるかを確認する以外に、私のオプションは何ですか。

ありがとう。

4

1 に答える 1

1

タスクは、rawリソース(証明書)をロードし、それをすべてのWebサービス呼び出しに使用することです。

生のリソースのロードには数ミリ秒かかるはずです。Traceviewを使用して、約4秒かかる理由を把握します。

現在、Webサービス呼び出しが行われるたびにロードしていますが、これは明らかに実際の解決策ではありません。

毎回rawリソースをロードすることは、完全に実行可能なソリューションのようです。別の選択肢があるわけではありません。

「通常の」サービスを作成し、ライフサイクルを慎重に実装して、証明書をいつ(再)ロードする必要があるかを確認する以外に、私のオプションは何ですか。

それは本当に悪い考えでしょう。

ユーザーは、サービスを実行してはいけないときにサービスを実行し続ける開発者を大いに嫌います。ユーザーは、設定でタスクキラーと強制停止を使用してこのようなアプリを攻撃します。これが発生すると、Android 3.1以降では、ユーザーがアクティビティの1つを開始するまで、アプリが再度実行されることはありません。

また、Androidは、ユーザーを不適切に記述されたサービスから保護するために、しばらくすると永遠のサービスを終了します。

代わりに、最大4秒の操作の最適化に焦点を合わせます。

于 2011-11-03T13:22:04.877 に答える