[英]how to make infinite loop in android?
我想在代碼中做while(true)
,但是,當我運行時,我什么也沒看到:我嘗試了AsyncTask
但我認為無限循環太重了。
public class openActivity extends AppCompatActivity {
ArrayList<String> myArraylist = new Arraylist<> ();
CustomAdapter myAdapter;
ListView list;
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.myActivity);
list = findViewById(R.id.myList);
try {
while (true) {
Document doc = Jsoup.connect(myUrl).get;
//here i get info i need
//add that info to myArraylist
myAdapter = new CustomAdapter(this, myArraylist);
list.setAdapter(myAdapter);
myAdapter.notifyDataSetChanged();
while (myArrayList.get(0).equals(myArraylist.get(0))) {
Thread.sleep(900000);
}
}
} catch (Exception ex) {
ex.getLocalizeMessage()
}
}
您的循環阻塞了UI線程。 要執行定期任務,您應該使用ScheduledExecutorService 。
另外,請避免在每次迭代時重新創建適配器。 更新現有數據,並使用DiffUtils通知更改。
或者您可以嘗試以下方法:
myAdapter = new CustomAdapter(this, myArraylist);
list.setAdapter(myAdapter);
getData();
public void getData(){
Document doc = Jsoup.connect(myUrl).get;
//here i get info i need
//add that info to myArraylist
myAdapter.notifyDataSetChanged();
getData()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.