簡體   English   中英

如何在Android中進行無限循環?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM