android - 当用户在 Activity Android 中输入时间过长时自动重定向
问题描述
我有一个场景,当用户评分或输入数据时,当前活动会将其计时到设定的时间。所以,如果用户没有做任何事情,或者采取行动到长,那么当前的活动将引导用户进入主活动。
就我而言,我有一个评级应用程序,它位于公共场所。我认为如果人们想要评分但没有完成测验阶段,那么我不想离开最后一个测验来结识想要评分的新人。
我试过使用这些代码:
int timeout = 4000;
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
Intent homepage = new Intent(Quiz2.this, MainActivity.class);
startActivity(homepage);
finish();
}
}, timeout);
还有这些:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(Quiz2.this, MainActivity.class));
}
}, 4000);
它可以工作,但没有按预期工作,因为它适用于所有活动(我的意思是,在这些代码在当前活动中工作之后,其余活动也被应用和计时)
我不想要这个。我想要的是仅在当前活动中应用这些计时器。如何做到这一点?
感谢任何帮助,问候。
解决方案
我没有完全理解你真正想要做什么,
但我猜想使用 CountDownTimer 然后在计时器完成时开始其他活动应该可以解决问题。
new CountDownTimer(4000, 1000) {
public void onTick(long millisUntilFinished) {
// You could show the user the time left using `millisUntilFinished`
}
public void onFinish() {
// Do something when the timer is finished (start your activity & finish)
}
}.start();
推荐阅读
- javascript - 在传单中,如何在标记鼠标悬停时同时显示工具提示和图像?
- amazon-web-services - 无法部署应用程序:在中止部署期间,某些实例可能已经部署了新的应用程序版本
- c# - MVC RedirectToAction 不起作用 - 获取“找不到资源”
- api - 如何使用 Dio 在 Flutter 中调用 API?
- firebase - Cloud Functions 部署错误构建步骤 3
- java - 如何将倒计时代码添加到 Java 应用程序?
- amazon-web-services - 如何使用 !Sub 或 !Join in "AWS::CloudFormation::Init",文件密钥
- c# - 无法从程序集 Newtonsoft.Json 加载类型“Newtonsoft.Json.JsonConvert”
- android - 在android studio中的textview中移动实际文本
- javascript - 上传图片后,Vue Firebase 无法获取图片 url