java - 为什么我的倒数计时器没有切换到我的其他活动?
问题描述
我有一个倒数计时器,它会自动从一项活动(家庭活动)切换到我的另一项活动(家庭)。问题是代码会计数但不会显示我的第二个活动,它会回到我的主要活动。有谁知道这个问题的解决方案?
这是我的计时器代码:
package com.login.register;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import java.util.Timer;
import java.util.TimerTask;
public class HomeActivity extends AppCompatActivity {
Timer timer;
//---------------------------Timer--------------------------------------------------------------------------------------------
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
Intent t = new Intent(HomeActivity.this, Home.class);
startActivity(t);
finish();
}
}, 3000);}}
这是我的 Android 清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.login.register">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Login">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".HomeActivity"/>
<activity android:name=".MainActivity">
</activity>
</application>
</manifest>
解决方案
onCreate()
在第一个活动中添加以下代码:
科特林代码:
Handler().postDelayed(Runnable {
startActivity(Intent(this@HomeActivity,Home::class.java))// Home class should be an activity and should be declared in Manifest file
},5000)//5 sec delay
Java 代码:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(HomeActivity.this, Home.class)); //Home class should be an activity and should be declared in Manifest file
}
},5000); // 5 sec delay
java.util.Timer
两者android.os.Handler
都是线程,但处理程序在性能方面比计时器快得多。看到这个diff b/w 处理程序和计时器
推荐阅读
- vuejs3 - Error: [vuex] do not mutate vuex store state outside mutation handlers. facing this issue while in store when updating state in mutations in quasar 2
- github - Github Actions 条件触发器
- python - tensorflow-gpu can't execute certain cells as t = tf.Variable(5), but detects my gpu
- javascript - 如何使用“警报”一次输出操作数的多个结果?
- javascript - Why is state not updating in vuex?
- vue.js - Vue test-utils 的问题 - TypeError: (0 , _testUtils.enableAutoDestroy) 不是函数
- selenium - 为内联代码获取 NullPointerException。我已经在全球范围内定义了 WebDriver,调用浏览器方法工作正常我在这里做错了什么
- git - gitlab合并请求分支有什么用?
- vue.js - Vue 阻止默认路由器链接行为在 Chrome 中有效,但在 Firefox 中无效
- vba - 将范围的值与数组匹配,如果不匹配,则通过输入框 Macro VBA 替换它