基本的には、AsyncTaskを使用してprogressBar
を表示し、progress
が10
の後にMainActivity
にあるメソッドを実行する必要があります。 progressBar
が10/10
の場合、次のエラーが発生するとクラッシュします。onPostExecuteはインテントを開けません
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
MapProgressTask
@Override
protected void onPostExecute(String result) {
textView.setText(result);
button.setEnabled(true);
progressDialog.hide();
MainActivity mainActivity = new MainActivity();
mainActivity.getGooglePlace();
}
MainActivity
protected void getGooglePlace()
{
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
Intent intent;
try {
intent = builder.build(MainActivity.this);
startActivityForResult(intent, place_picker_request);
} catch (GooglePlayServicesRepairableException e) {
e.printStackTrace();
} catch (GooglePlayServicesNotAvailableException e) {
e.printStackTrace();
}
}
あなたはprogressBar
がいっぱいになったとき、私はその方法を実行することができますどのように私にしてください教えてください。ありがとう!あなたのonPostExecuteイベントで
MainActivity mainActivity = new MainActivity();?あなたは何をしようとしているのですか? – Vardan95
あなたのアクティビティをインスタンス化して、このアクティビティ内のメソッドを実行しようとしないでください。そのメソッドをパブリックの分離クラス内に作成します。 – Opiatefuchs
**決して**あなた自身のアクティビティのインスタンスを作成しないでください。したがって、まず、次の行を削除してください: 'MainActivity mainActivity = new MainActivity(); mainActivity.getGooglePlace(); '次に、この他のアクティビティを開始するためのより良い計画を決定する(例えば、 'Context'をパラメータとする' static'メソッド)。 'AsyncTask'が動作している間(例えば、ユーザが画面を回転させる)、設定変更の可能性を考慮に入れてください。 – CommonsWare