如果我们在倒计时结束前更改片段,应用程序就会在android中崩溃

rqdpfwrv  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(261)

应用程序一打开,我就使用2秒倒计时。2秒钟后,我看到了线性布局和不可见的进度条。我之所以使用它,是因为我可以通过firebase提取所有数据,并将其分配给相应的文本框。但是,如果我在倒计时期间传递到另一个活动,程序就会崩溃。

object : CountDownTimer(1000, 1000) {
            override fun onTick(p0: Long) {
            }

            override fun onFinish() {
                  linearLayout_profile.visibility = View.VISIBLE
                  progressBar_profile.visibility = View.INVISIBLE
            }
        }.start()
2020-12-10 00:50:24.118 1742-1742/com.burakergun.emre E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.burakergun.emre, PID: 1742
    java.lang.NullPointerException: linearLayout_profile must not be null
        at com.burakergun.emre.Fragment.ProfileFragment$onViewCreated$3.onFinish(ProfileFragment.kt:66)
        at android.os.CountDownTimer$1.handleMessage(CountDownTimer.java:127)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
2020-12-10 00:50:24.185 1742-1742/com.burakergun.emre I/Process: Sending signal. PID: 1742 SIG: 9

我检查了logcat并显示了致命错误。错误说明linearlayout\u profile不能为空。linearlayout\u profile如何为空。我不明白那部分。

vsaztqbk

vsaztqbk1#

当您传递到另一个活动时,应该销毁计时器

override fun onDestroy() {
    super.onDestroy()
    timer?.cancel()
}
dfuffjeb

dfuffjeb2#

linearlayout_profile 为null,因为您导航到另一个活动,并且没有对的引用 linearlayout_profile 因此为空。
您需要添加null检查以防止崩溃。

相关问题