0

参考:私はプロではないので、これは簡単に解決できるかもしれませんが、今まで解決策を見つけることができませんでした.

次のシナリオ。Android アプリケーションがあります。メイン アクティビティでは、クラスの静的インスタンスを初期化して WebSocket 経由の通信を処理し、次にこの静的インスタンスを使用するサービスを開始します。

  1. ここで、アクティビティを閉じると、サービスをバックグラウンドで実行し続けます (部分的なウェイク ロックを使用)。問題は、後でサービスを破棄すると、アプリを削除するまで静的インスタンスがアクティブなままになることがあります。 「キャッシュされたプロセス」。

  2. アクティビティを再度開始すると、新しい静的インスタンスが初期化されます。

どうすればこれを回避できますか?

4

1 に答える 1

0

問題は、後でサービスを破棄すると、「キャッシュされたプロセス」からアプリを削除するまで、静的インスタンスがアクティブなままになることがあります。

これが望ましくない場合onDestroy()は、サービスから停止するために何かをしてください。または、そもそも静的にしないで、サービス自体の一部にします。

于 2012-10-13T12:39:15.580 に答える