私はAsyncTask(AsyncTaskアクティビティの5分が可能)で大きな仕事をするAndroidアプリケーションを開発しています。BIG AyncTaskでインターネット接続の変更を処理する方法
このタスクではインターネット接続が必要です。開始時にデバイスがオンラインかどうかを確認します。
しかし、モバイル接続へのWi-Fiからユーザーの変更接続のIFまたはGraphRequestが、私はこのエラーでクラッシュまし実行されているときにオフライン:ここ
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'org.json.JSONObject org.json.JSONObject.getJSONObject(java.lang.String)' on a null object reference
はコードどこクラッシュの一部です:
// I Check if the device is online, if yes:
for(j=0; j<n_foto_pub;j++) {
GraphRequest request2 = GraphRequest.newGraphPathRequest(
AccessToken.getCurrentAccessToken(),
"MY_QUERY",
new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse response) {
try {
JSONObject obj1 = response.getJSONObject();
JSONObject obj2 = obj1.getJSONObject("data1"); <--- CRASH HERE
JSONObject obj3 = obj2.getJSONObject("data2");
int ris = obj3.getInt("ris");
..........
} catch (JSONException e) {
e.printStackTrace();
}
}
});
request2.executeAndWait();
}
私はキャッチしていますが、とにかくクラッシュします。
アプリのクラッシュを回避して、以前のアクティビティでユーザーを戻すにはどうすればよいですか?
私のループは本当にJSONリクエストで満たされていますので、このソリューションではどのような場合でもクラッシュする可能性が高いと思います。 – GMX
try catchブロック内で最初のjsonリクエストが発生するので、アプリケーションがクラッシュすることはなく、例外が発生するだけです。例外が単純なcallbackActivity()メソッドに達したとき。私は私の答えを更新しました。私の答えはあなたに役立つ場合 –
。受け入れ&upvote。それは他人を助けるでしょう。ハッピーヘルプ@GMX –