gpt4 book ai didi

java - 自动切换 Activity

转载 作者:行者123 更新时间:2023-11-30 09:12:18 24 4
gpt4 key购买 nike

我是 Android 编程的新手,所以我可能在这里遗漏了一些微不足道的东西。

目标是创建数字标牌应用程序的原型(prototype)。现在我已经创建了三个 Activity ; MainActivity 有一个方法可以在一段时间后切换到第二个 Activity 。然后从第二个 Activity 调用相同的方法到第三个 Activity ,然后从第三个 Activity 返回到主要 Activity 。

但是有两个问题:首先,每次应用程序在 Activity 之间切换时都可以创建新的 Intent 吗?正如我提到的,我最近开始学习 Android,所以如果这是一个 super 愚蠢的问题,请不要生气。

其次:即使我在 startActivity(intent); 之后调用 finish(); ,应用程序也会在我按下模拟器中的主页按钮后自行启动

这是 MainActivity 中的方法:

public void switchActivities(final Class<?> classObject) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {

@Override
public void run() {
Intent intent = new Intent(getApplicationContext(), classObject);
startActivity(intent);
finish();
}

}, 1000);
}

Activity Second 和 Third 扩展 MainActivity 并调用 switchActivities 方法:switchActivities(Third.class);(从第二到第三)。

提前致谢!

更新:我将 public boolean isRunning = true; 添加到我的 MainActivity 和if(isRunning) startActivity(intent); 到 switchActivities 方法;我还添加了一个方法

@Override
protected void onPause(){
super.onPause();
isRunning = false;
}

按照这里的建议。

尽管 finish(); 应该已经清除了方法堆栈,但应用程序在按下 Home 按钮后并没有关闭而是转到了上一个 Activity ,所以我将这一行添加到 AndroidManifest 中的每个 Activity 文件:

android:noHistory="true"

建议here .

很抱歉没有给有用的答案投票,我还没有足够的声誉。

最佳答案

是的,这是通过创建新 Intent 来切换 Activity 的正确方法。我对你的第二个问题有点困惑。如果你说你正在使用 postDelayed 方法,它在一段时间后被触发,即使你已经完成你的 Activity 或按下主页按钮也会被调用,你可以通过在你的 Activity 中创建一个 boolean 变量 isRunning 来处理这个问题,它在 onPause 时变为 false或者 onDestroy 被调用。然后你在你的延迟后方法中,你可以检查标志然后按要求继续。

关于java - 自动切换 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21627815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com