電話またはそのような中断を受け取った後、申請がクラッシュしました
-
27-09-2019 - |
質問
私が電話を受けたか、電話をかけた後(およびその他の文書化されていない中断)、私のアプリケーションが取得されます nullpointerexception 私の活動を再開するとき。それがどこにあるか、そして/またはそれを修正する方法を私に説明することはできますか?
以下に示すようにコードを書きました:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.displayActivity);
new performBackgroundTask().execute();
}
@Override
public void onDestroy()
{
listview1.setAdapter(null);
super.onDestroy();
}
private class performBackgroundTask extends AsyncTask <Void, Void, Void>
{
private ProgressDialog Dialog = new ProgressDialog(displayActivity.this);
protected void onPreExecute()
{
Dialog.setMessage(getString(R.string.dialog_wait_message));
Dialog.show();
}
protected void onPostExecute(Void unused)
{
Dialog.dismiss();
// displaying all the fetched data
}
@Override
protected Void doInBackground(Void... params)
{
// fetching data from web using HTTPGet method
return null;
}
}
logcat出力は次のとおりです。
java.lang.runtimeexception:アクティビティを破壊することはできません{myApplication/myApplication.displayactivity}:java.lang.nullpointerexception at android.app.activitythread.performdestroyactivity(activitythread.java:3655) :3673)at android.app.activitythread.handlerelaunchactivity(Activitythread.java:3789)at android.app.activitythread.access $ 2400(Activitythread.java:125)at android.app.activitythread $ h.handlemessage(Activitythread.java:2037 )Android.os.handler.dispatchmessage(handler.java:99)でandroid.os.looper.loop(looper.java:123)at android.app.activitythread.main(Activitythread.java:4627)at java.lang.lang .Reflect.Method.Invokenative(ネイティブメソッド)java.lang.refllect.method.invoke(method.java:521)at com.android.internal.os.zygoteinit $ methodandargscaller.run(zygoteinit.java:868) .android.internal.os.zygoteinit.main(zygoteinit.java:626)at dalvik.system.nativestart.main(ネイティブ方法) myapplication.displayactivity.ondestroy(displayactivity.java:74)のandroid.app.activitythread.performdestroyactivity(acivitythread.java:3642)のterexception
さて、PLSはこの問題を修正するのに役立ちます。電話またはSMSの受信またはそのような中断をどのように処理できますか?
解決
ステップ#1:の行74を見つけます displayActivity.java
ファイル。
ステップ#2:74行目に問題があるものは何でも修正します。
さて、スタックトレースは、74行目がにあることを示唆しています onDestroy()
. 。上記のアクティビティコードは displayActivity
, 、次に74行目でなければなりません。
listview1.setAdapter(null);
それは意味します listview1
は null
. 。上記のコードでこのデータメンバーに値を宣言したり割り当てたりすることはありません。
他のヒント
最初の行でBPを設定してみてください onDestroy
そして、VARS/メンバーを検証して、どちらがいるのかを見つける null