0

以下のコードでクラッシュが発生しています。特定の時間トーストを拡張しようとしており、実行時にトーストを「強制終了」しようとしていonPauseます。私は何を間違っていますか?を追加するとクラッシュが発生timer.cancel()します onPause

private boolean checkInternetConnection() {



    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    // test for connection
    if (cm.getActiveNetworkInfo() != null
            && cm.getActiveNetworkInfo().isAvailable()
            && cm.getActiveNetworkInfo().isConnected()) {

        splashTread.start();
        return true;
    } else {



        timer = new CountDownTimer(20000, 1000)
        {

            public void onTick(long millisUntilFinished) {toast.show();}
            public void onFinish() {toast.cancel();}

        }.start();



        return false;
    }
}



@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    finish();
timer.cancel():
}



@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    finish();
    timer.cancel():



}

}

4

1 に答える 1

1

これがあなたができることです。タイマーが null であるため、アプリがクラッシュします。タイマーが実行または設定されたことはありません。

これを onDestroy と onPause の両方に追加します。

if (timer != null) {
        timer.cancel();

    }
于 2012-05-13T09:13:53.780 に答える