1

外部 Web サービスを呼び出し、ユーザーがデバイスを回転させると、アクティビティが再起動します (自分で処理できることはわかっていますが、これはお勧めしません)。を使用して状態を保存できることはわかっていonRetainNonConfigurationInstance()ます。

質問は、アクティビティの再起動後に機内ネットワーク IO がどうなるかということです。続行しますか、中断されますか、それとも殺されますか?

私はAndroid(iOSの人)にかなり慣れていないので、アクティビティの再起動はかなり奇妙です。

一部のネットワーク コールは再開される可能性がありますが、購入のチェックアウトはその 1 つではありません。購入が引き続き正しく機能するようにするにはどうすればよいですか? を使用すると仮定しますAsynctask(ただし、 などの他の選択肢があることは認識していますExecutors)。

4

2 に答える 2

1

アクティビティの再起動(購入など)全体で維持する必要があるネットワークコールの場合serviceは、アクティビティ内で行うのではなく、使用することを検討してください。

接続がアクティビティ内のインスタンス変数として定義されている場合、アクティビティが再開すると接続は破棄/強制終了されます。

もう1つの方法は、applicationクラスを実装し、そこに接続を維持して、アプリプロセスが有効である限り永続的になるようにすることです。

于 2013-02-18T20:56:56.813 に答える
0

アクティビティ内でリクエストを処理するべきではありませんが、そのリクエストが発火するほど簡単でない限り (つまり、応答を必要としません)。一般的なユース ケースは、複数のアクティビティにわたって処理する必要がある REST インターフェイスとやり取りする場合です。基本的な考え方は、サービスにリクエストを発行し、サービスに接続を仲介させることです。Google IO 2010 では、聞くことができる優れた講演が行われました。

Applicationメモリが不足しているときにアプリが Android によって強制終了されると、奇妙な動作が発生するため、クラス内に機能を実装することはお勧めしません。

于 2013-02-18T21:09:16.013 に答える