当倒数计时器达到0时开始新的活动

问题描述 投票:0回答:1

我正在制作一个简单的倒数计时器应用程序,但是我无法启动新的活动。在onFinish()方法上,我调用了另一个方法resetActivity(),它会像这样创建新的Intent

public void resetActivity() {
    Intent intent = new Intent(MainActivity.this, reset.class);
    startActivity(intent);
}

[当我的计时器达到0时,它开始崩溃,而不是开始新的活动。

我感觉它与View有关,但是我没有找到任何在线方法可以帮助我解决这个问题。我碰到的大多数页面都使用一个按钮来启动新活动我进行这项新活动的原因仅仅是将新消息和重置按钮重新设置为新背景。如果有一种方法可以在计时器达到0时更改背景,那么我将不需要第二项活动。

这是我的countdownTimer块:

public void start() {
    countdowntimer = new CountDownTimer(timeLeft, 1000) {
        @Override
        public void onTick(long x) {
            timeLeft = x;
            updateTimer();
        }

        @Override
        public void onFinish() {
            resetActivity();
        }
    }.start();
}
java android android-studio android-intent
1个回答
0
投票

更改托管活动背景的一种方法是将ImageView添加到活动布局中:

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:adjustViewBounds="true"/>

具有这样的设置,您可以在计时器的onFinish中进行imageView.setImageResource(R.drawable.myAwesomeDrawable)(并像这样调用计时器,例如new CountDownTimer(5000, 1000))。不过,我不确定您在onTick中的逻辑。

您当然可以像您提到的那样,将图像设置为ImageView,而不是将其转换为新的活动。假设活动已按照您所说的在清单中进行了注册,那么它将正常工作。

如果以上方法没有帮助,则需要您的logcat。

© www.soinside.com 2019 - 2024. All rights reserved.