【发布时间】:2018-05-14 13:06:30
【问题描述】:
我想在我的代码中创建一个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()
}
}
【问题讨论】:
-
这个"while (myArrayList.get(0).equals(myArraylist.get(0))) { Thread.sleep(900000); } "的目的是什么
-
你不能在 onCreate 方法中创建它,因为它阻塞了主线程,即 UI 线程。我建议您在这里查看更多信息。 developer.android.com/guide/background
-
我认为一个更好的问题是你为什么要这样做?不是最好的想法。
-
@AbubakkerMoallim 我需要从我的网站上获取所有信息,但我想继续只获取新帖子。所以我会说,直到arraylist的第一个元素相同,暂停抓取
-
@peshkira,是的,我知道我无法在 onCreate 中实现,我曾尝试在 Asyntask 中实现,但无法正常工作。我希望提出建议 ;)
标签: android infinite-loop