Java 无法停止android应用程序中的线程
有类似的线程和,但它们不能解决我的问题 我想根据while循环中检查的标志值停止线程执行。在双嵌套内部匿名类实现中,Java 无法停止android应用程序中的线程,java,android,multithreading,Java,Android,Multithreading,有类似的线程和,但它们不能解决我的问题 我想根据while循环中检查的标志值停止线程执行。在双嵌套内部匿名类实现中,servicesponse和secondservicesponse基于某些条件,标志值将设置为false 问题是将标志更改为false对while循环不可见,因此它会无休止地运行。我也尝试了Thread.interrupt,但那不起作用。如何通知while循环终止 public class MyCode implements Runnable{ public void termin
servicesponse
和secondservicesponse
基于某些条件,标志值将设置为false
问题是将标志更改为false对while循环不可见,因此它会无休止地运行。我也尝试了Thread.interrupt
,但那不起作用。如何通知while循环终止
public class MyCode implements Runnable{
public void terminate(){
flag = false;
}
public void run() {
boolean flag = true;
SomeService someService = new SomeService();
someService.getDistricts(new ServiceResponse() {
@Override
public void onResponse(String[] districts) {
List<Centers> centersList = new ArrayList<>();
while ( flag, also tried !Thread.interrupted() ) {
for (int i = 0; i < districts.length; i++) {
someService.getCenters(districts[i], new SecondServiceResponse() {
@Override
public void onResponse(List<Centers> centers){
if (centers.size() > 0) {
centersList.addAll(centers);
}
if (count == districts.length - 1) {
if ( someCondition) {
flag = false; // does not work
terminate(); // does not work
Thread.interrupt(); //does not work
} else {
Thread.sleep();
}
}
}
});
}
}
}
});
}
公共类MyCode实现可运行{
公共无效终止(){
flag=false;
}
公开募捐{
布尔标志=真;
SomeService SomeService=新的SomeService();
someService.getDistricts(新服务响应(){
@凌驾
public void onResponse(字符串[]地区){
列表中心列表=新的ArrayList();
while(标志,也尝试了!Thread.interrupted()){
for(int i=0;i<1.length;i++){
someService.getCenters(地区[i],新的SecondServiceResponse(){
@凌驾
公共响应(列表中心){
如果(centers.size()>0){
中心列表。添加所有(中心);
}
if(count==districts.length-1){
如果(某些条件){
flag=false;//不起作用
terminate();//不起作用
Thread.interrupt();//不工作
}否则{
Thread.sleep();
}
}
}
});
}
}
}
});
}
}