android for循环 终止,android - 使用Handler()中断For循环 - 堆栈内存溢出

博客内容涉及到在Android中使用Handler来控制打印任务的执行。通过一个for循环和Handler的postDelayed方法,定时检查打印设备的状态。如果查询到的状态为1,设置isCanceled为true以取消任务。此外,提到如果需要处理结果,可以添加回调。这里主要探讨了如何在异步操作中优雅地取消任务并控制流程。
摘要由CSDN通过智能技术生成

您必须将var设为处理canceled状态

例如,通过您的代码。

public void printOut (){

final Handler handler = new Handler();

boolean isCanceled = false

for (final int[] x = {0}; (x[0] < Integer.parseInt(spinner.getSelectedItem.toString()) && !isCanceled); x[0]++) {

handler.postDelayed(new Runnable() {

@Override

public void run() {

//printer for my device

int query = PrinterInterface.queryStatus();

if (query == 1){

isCanceled = true

// return true

//printing goes here..

}else{

// returns false

x[0] = Integer.parseInt(spinner.getSelectedItem.toString());

}

}

},2000 * x[0]);

}

并且,如果要处理结果,则需要添加回调。

但是,我不明白,为什么要使用poseDelayed , for您是启动所有处理程序的。

更好,如果您检查query ,则在Handler之后执行逻辑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值