【发布时间】:2020-04-22 14:52:20
【问题描述】:
我创建了一个 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);
}
【问题讨论】:
-
分享您的代码和 logcat 消息以找出您的错误。
-
您不需要将
timer变量设置为类成员吗?然后在 onLogout 中调用cancel。 -
@selbie 我将计时器变量更改为类成员。并取消了注销方法中的计时器。但是报告说,错误是由于寻呼机适配器有问题。
标签: android runnable android-handler