首页 > 解决方案 > 如何在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()
     }
 }

标签: androidinfinite-loop

解决方案


您的循环阻塞了 UI 线程。要执行定期任务,您应该使用ScheduledExecutorService

此外,避免在每次迭代时重新创建适配器。更新现有数据并使用DiffUtils通知更改。


推荐阅读