gpt4 book ai didi

java - 如何在不卡住我的应用程序的情况下运行循环?

转载 作者:行者123 更新时间:2023-11-29 02:58:59 29 4
gpt4 key购买 nike

循环卡住了我的应用程序,但在它完成后,应用程序正常运行。我尝试在 Thread 中运行循环,它在不卡住应用程序的情况下运行良好。但现在的问题是,如果应用程序崩溃,我将无法再次运行相同的循环,因为我们无法重新启动 Thread。我想以一种不会卡住应用程序并且可以再次运行的方式运行循环。我该怎么做?

我的 MainActivity 类中的代码:

protected Thread sendthread;

@Override
protected void onCreate(Bundle savedInstanceState) {

sendthread = new Thread(new Runnable () {

@Override
public void run() {

for(int i=0;i<amount;i++){

if (status == 0){

break;

}

SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber.getText().toString(),null,messagetoSend, null, null);

}

}
});


}

线程按钮启动

start.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

status = 1;
sendthread.start();

}

我通过将 status 设置为 0 来停止线程

最佳答案

尝试使用 AsyncTask。在onPreExecute 函数中启动一个进度条,并在onPostExecute 中调用cancel。在 doInBackground 中你可以调用 sleep。这不会使您的应用崩溃,您也不会觉得应用没有响应。

关于java - 如何在不卡住我的应用程序的情况下运行循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36332365/

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