循环卡住了我的应用程序,但完成后,应用程序正常工作。我尝试在 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);
}
}
});
}
Thread
由按钮
启动
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/