0

アクティビティからサーバーにデータを送信しています。以下を使用して、バックグラウンドで実行し続けます。

public void onBackPressed() {
    moveTaskToBack (true);
}

ただし、ネットワークの問題により、データが約 10 分間送信されない場合があります。n/w の問題から回復した後、送信を続行しません。

なぜそうなのですか?何もすることがない場合、アクティビティはしばらくして停止しますか?

4

2 に答える 2

2

バックグラウンドで実行され、データをサーバーに送信するサービスを開始するだけです。アクティビティのメインスレッドでそれを呼び出すと、アクティビティがハングして処理できなくなる可能性があります。アクティビティにはライフサイクルがあるためです。UPするかも!バックグラウンド サービスを開始し、その中ですべての操作を実行します。:)

于 2013-03-18T10:08:54.273 に答える
1

ドキュメントを確認してください。このメソッドは、アクティビティをアクティビティ スタックの後ろに移動するだけで、まだ一時停止されているため、OS によるファイナライズの対象となります。あなたの活動はおそらく破壊されています。

アクティビティが一時停止している間も特定のプロセスを実行し続けたい場合は、Raghunandan が提案したようなサービスを使用するか、データ送信の完了後に UI を更新する必要がある場合はAsyncTaskを開始します。

于 2013-03-18T09:00:08.080 に答える