gpt4 book ai didi

android - 如何使用异步任务来控制 View 寻呼机

转载 作者:行者123 更新时间:2023-11-29 22:53:13 28 4
gpt4 key购买 nike

我正在尝试按照一些教程使用 View 寻呼机创建一个自动图像 slider 。我让一切正常,但后来我看到了

编舞:跳过 1 帧!应用程序可能在其主线程上做了太多工作。 并搜索了错误。`

你看,在我的代码中,我有一个计时器和一个处理程序,它们只是将代码延迟 3 秒,然后将 View 分页器滑动到下一个图像。我向一位 friend 确认,经过几个小时的搜索,没有其他东西在主线程上做太多工作。

所以搜索堆栈溢出问题,我看到很多开发人员建议使用 AsyncTask 在后台做一些事情然后更新,这实际上可能是一个完美的解决方案。但后来我意识到我对 AsyncTask 一无所知。我去了 android 开发人员引用并看到了一些教程,但我无法找到适合我的解决方案的东西。

我看到了很多关于图片下载的教程,但它们到目前为止,不是我关心的。我只关心控制 View 寻呼机移动到下一张幻灯片。

这是我控制我的 View 寻呼机滑动的部分:

// Auto start of viewpager
final Handler handler = new Handler();
final Runnable Update = new Runnable() {
public void run() {
if (currentPage == NUM_PAGES) {
currentPage = 0;
}
mPager.setCurrentItem(currentPage++, true);
}
};
Timer swipeTimer = new Timer();
swipeTimer.schedule(new TimerTask() {
@Override
public void run() {
handler.post(Update);
}
}, 3000, 3000);

如何将此代码合并到 AsyncTask 中?

作为引用,我使用了 this教程。

最佳答案

Runnable 是一个单独的工作线程,它与主线程没有交互。处理 ui 元素时,请使用 runOnUiThread。示例。

     runOnUiThread(new Runnable() {
@Override
public void run() {
if (currentPage == NUM_PAGES) {
currentPage = 0;
}
mPager.setCurrentItem(currentPage++, true);
}
});

runOnUiThread(){
mPager.setCurrentItem(currentPage++, true);
}

关于android - 如何使用异步任务来控制 View 寻呼机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57705150/

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