1

2台の電話で実行するサービスがあります。それらはソケットを使用して相互に通信し、スクリプトを実行し(約1〜2分かかる場合があります)、それらの間でファイルを交換します(HTTP Postを使用)。

画面がオフの場合、つまりWakelockを取得した場合でも、この実行を継続したいと思います。このリンクを見ましたが、コードのどこに組み込むかわかりません(実行中にデバイスがスリープする可能性があるため)。どんなガイダンスでも大歓迎です。ありがとうございました。

4

2 に答える 2

2

2台の電話で同じアプリを使用しています。onCreate() では、ポートでリッスンするサービスを開始します。phone1 のボタンをクリックすると、ファイルの HTTP Post が phone2 に送信され、通信が続行されます (電話 2 も最初にポートでリッスンするため)。

ええと、あなたの主な目的は、phone2 のバッテリーが切れてしまうので、phone2 の所有者にシミターであなたを攻撃させることのようです。

そうは言っても、HTTP デーモンは、 を取得して解放するサービスにある必要があります(ほとんどのモバイル データ接続では必要なものが機能しないため、WakeLockおそらく)。WifiLock

WakefulIntentServiceWakeLockは、特定のタスクを完了するために取得したものを短期間だけ保持する必要がある賢明なシナリオ向けに設計されているため、ここでは役に立ちません。あなたの場合、WakeLockいつ作業を行う必要があるかわからないため、獲得したものを無期限に保持する必要があります。

これをコードのどこに組み込むべきかわかりません。

サービスで、おそらく。WakeLockおそらくサービス内で取得しonCreate()、サービス内でリリースするでしょうonDestroy()。シミター関連の終焉を回避したい場合は、このサービスが実行されている正確な時期をユーザーが十分に制御できるようにする必要がありますWakeLock

于 2012-11-13T12:10:09.847 に答える
1

Why not implement that functionality with a service? See here. I'm not very experienced in android development but have worked recently in a project where a functionality similar to that was implemented using services.

于 2012-11-13T10:37:30.813 に答える