gpt4 book ai didi

android - 如何在 Activity 中进行无限循环

转载 作者:行者123 更新时间:2023-11-29 14:53:36 25 4
gpt4 key购买 nike

当有人在做一些游戏时,他们可以这样做:mainActivity 扩展 Activity 并且在这个主要 Activity 中有一个方法,例如:

setContentView(BouncingBallView);

BouncingBallView extends View 并且我们有方法:onDraw() invalidate() 和这些方法用于更新并且它们在所有帧中执行。

我的问题是我想要一些像“onDraw-invalidate”这样的方法,它是更新的但在类 Activity 中而不是在 View 中。

我想知道是否有一些主循环,方法一直执行一些 update()?我知道在 Activity 中有: onCreate(); onStart(); onRestart(); onResume()onPause(); onStop();和 onDestroy(),但我看不到更新?我该怎么做?

最佳答案

你想要定期更新吗?那么计时器可能是一种方法。在您的 Activity 的 onStart 中创建一个计时器实例,并安排一个具有所需延迟的更新任务,如下所示:

public class MyActivity extends Activity {
...
private Timer timer;
private BouncingBallView ballView;

...

@Override
public void onResume() {
timer = new Timer();
// This timer task will be executed every 1 sec.
timer.schedule(new TimerTask() {
@Override
public void run() {
ballView.update();
}
}, 0, 1000);
}

...

@Override
public void onSuspend() {
// Suspend the updates when the activity is inactive.
timer.cancel();
}
}

请注意,计时器任务在单独的线程中运行,在 Android 中,在与创建它们的线程不同的线程中修改 UI 元素可能会导致问题。如果您遇到这些问题,处理程序 (android.os.Handler) 会很有帮助,在 Honeycomb 中有更好的解决方案,但定时器/处理程序组合在旧版本中运行良好。

关于android - 如何在 Activity 中进行无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11537665/

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