0

私は自分のアプリで次のことをしたい。ユーザーがホームキーを押しても、アプリはデータを送信し続けます (アプリが強制終了されるまで無期限に)。疑似コードでは、次のようなものが必要です。

even_if_i_have_pressed_home_button {
    for (;;) sendData();
}

何を使えばいいのか教えてください。サービス、スレッド、またはランナブルについて読みました。何か提案して、サンプルコードを教えてもらえますか?

4

2 に答える 2

1

サービスを作成すると、サービスは継続的に実行されるスレッドを作成します。サービスの実装は大きなトピックであり、ここでは取り上げることができません。Androidサービスのドキュメントページを読むことから始めます。ここに覚えておくべきことがいくつかあります、

  1. アプリケーションのユーザーインターフェイスが停止した後も実行され、作業を継続するスレッドを作成する場合は、ユーザーがこれを理解できるように通知を追加し、サービスを実際に停止する方法を提供してください。たとえば、通知をクリックすると、「終了」する方法でアプリケーションのユーザーインターフェイスに戻ります。

  2. androidは、メモリが必要な場合にサービスを破棄します。絶対に実行し続けるサービスを作成することはできません。アプリケーションの設計では、これを考慮する必要があります。

  3. あなたが本当にこれをする必要があることを確認してください。継続的なネットワークアクティビティがあると、ユーザーのバッテリー寿命に深刻な影響を及ぼします。アラームマネージャを使用して作業を実行するために、電話をスリープ状態にし、定期的に目を覚ますことを検討してください。

于 2012-07-05T17:04:22.433 に答える
0

そのためにはサービスを使用する必要があります。サービスは「緊急」の場合にのみ Android によって強制終了されるため、アプリのアクティビティが終了してもサービスはアクティブなままになる可能性が高くなります。サービスのクローズも必ず処理してください。そのためには、サービスの onDestroy メソッドを使用できます。

于 2012-07-05T17:07:42.923 に答える