如何在Android中停止可运行线程?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Android中停止可运行线程?相关的知识,希望对你有一定的参考价值。
我创建了一个runnable线程,以通过在首页中自动循环更改/滑动View Pager的位置。
在我的应用程序中,当单击注销按钮时,我想停止该线程。
我已经尝试过removecallback方法,但该应用有时仍会崩溃。
还有其他解决方案吗?
下面是我的代码:
final Handler offers1Handler = new Handler();
Runnable offers1Runnable;
private void setLooping() {
offers1Runnable = () -> scrollPager(binding.contentHome.offers1ViewPager);
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
offers1Handler.postDelayed(offers1Runnable, 1000);
}
},500, 3000);
}
}
private void onLogout(){
offers1Handler.removeCallbacks(offers1Runnable);
}
答案
如果您想自行取消计时器,则可以使用cancel
方法。
Runnable不是线程,它只是运行一个方法。 Timer
是线程的一种工具,用于计划任务以供将来在后台线程中执行。如果要取消,则实际上要取消Timer
。如文件所述:
如果调用者想快速终止计时器的任务执行线程,则调用者应调用计时器的cancel方法。
如果调用cancel
方法。它的执行线程正常终止,并且无法在其上安排更多任务。
以上是关于如何在Android中停止可运行线程?的主要内容,如果未能解决你的问题,请参考以下文章