後のAPIリクエストのコールバックリクエスト。これは、基本的にデータベース内の数値を更新して5秒後にJSON応答で送信するサービスへのHTTPリクエストをトリガーするボタンしかありません。アクティビティはレスポンスを取得し、レスポンスをTextViewに表示します。私は、設定 - 開発者オプションで "アクティビティを保存しない"オプションを有効にした実際のデバイスでテストしています。アンドロイド - 私はアンドロイドでHTTPコールバックを処理する方法をよりよく理解しようとしていますので、私はHTTPのためのボレーを使用していますシンプルなアプリを作成しました</p> <p>...私はよくこれを説明することを願ってonDestroy
- スタートのアプリを起動する:
これは私がテストしていたシナリオです。
- HTTPリクエストをトリガーするボタンをタップします。
- ボタンをタップした直後に、デバイスのホームボタンをタップしてアプリをバックグラウンドに送信します。 "Do not keep activities"オプションのためにonDestroyメソッドが呼び出されます。
- HTTP応答に数秒お待ちください。私はそれがlogcatモニタに表示され、データベースが更新されているので、デバイスが取得するのがわかります。
- コールバックを実行する前に、アクティビティがまだ有効であることを確認します。アクティビティが破棄されたため、コールバックは無視されます。アプリがバックグラウンドから復元された場合、クラッシュは発生しませんが、Network Responseは見落とされます。また、私はもう一度ボタンをタップすると、それは新しいHTTPリクエストを送信し、再び数が増加し...だから
、質問は以下のとおりです。ネットワークを実現するためのベストプラクティスです
UIへの応答?私は、簡単な操作の代わりに、それが登録フォームであったとしましょう、私はバックグラウンドにアプリを送信するために電話や何かを得る、何かが起こる可能性がある場合、どうすればネットワークコールバック?アプリが再びフォアグラウンドになるまで、コールバックの実行を遅らせるものがありますか?
onDestroyが呼び出された後にonSaveInstanceStateのようなBundleを保存して、アプリが再びフォアグラウンドになったときに復元する方法はありますか?
HTTP応答に含まれる情報が機密性が高いとします。このケースを処理するための推奨される方法はありますか?私は、内部ストレージに応答を保存し、アプリが再びフォアグラウンドになったときにそれをチェックすることを考えていましたが、onDestroyが呼び出された後でそれが可能かどうかわかりません。機密データ。
ありがとうございます!
こんにちは@ガベ... 1。「コールバックを見逃してはいけない」とは、私はそのブロックの実行を見逃さないことを意味していました。私は実際にコールバックを取得していますが、UIが破損しているためUIを更新することができません。ありがとう、私はローダーで試してみます。万が一、事例がありますか? – allo86
ローダーでもその問題が解決されます –
ローダーとMVPを組み合わせようとしています。私は、プレゼンターを保持するためにLoaderを使用することを奨励するいくつかの記事を読んだが、プレゼンターからVolleyリクエストを送信する(例ではユーザーにログインする)、私は以前と同じ問題を抱えている。プレゼンターがビュー(アクティビティー、フラグメント)がフォアグラウンドにないとき。私はPresenterの中でローダーを使うことを考えましたが、Presenterがイントロダクションを避けなければならないので、それは良い考えではないようです。あなたはこの状況をどうやって管理するかを知っているか考えていますか? – allo86