生也有涯,知也无涯。这篇文章主要讲述如何在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方法。【如何在Android中停止可运行线程()】如果调用
cancel
方法。它的执行线程正常终止,并且无法在其上安排更多任务。推荐阅读
- 在appkit中禁用右键单击
- java.lang.NoClassDefFoundError(部署到Google App Engine时无法初始化类net.sf.cglib.proxy.Enhancer。)
- Jquery在混合android中不起作用,但在网络中起作用
- 如何在Android中设置EditText的最大字符数()
- Android(如何从一组图像制作视频)
- MediaStore.EXTRA_VIDEO_QUALITY不适用于Android视频捕获
- 如何在Android Studio中使用YouTube API在Android应用中列出视频
- android studio模拟器无法播放视频
- 在Windows 10 Universal App上添加Youtube嵌入视频