线程无法在Android上启动

时间:2013-04-27 15:55:41

标签: android multithreading

我将这段代码放入ListFragment

@Override
public void onActivityCreated(Bundle savedInstanceState) {
   super.onActivityCreated(savedInstanceState);
   aa = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,  postTitleList);
   setListAdapter(aa);

   Thread syncThread = new Thread(new Runnable(){
       public void run()
       {
           syncPosts();
       }
   });
   syncThread.start();

   Log.d("POSTS", "Thread Status: " + syncThread.getState().toString());
   Log.d("POSTS", "Thread ID: " + Long.toString(syncThread.getId()));
}

但遗憾的是Thread永远不会启动,它仍处于WAITING状态,是否有办法强制它运行?

2 个答案:

答案 0 :(得分:2)

我相信它正在运行。它很可能会进入WAITING状态,因为syncPosts()中的某些内容正在等待某些内容。 WAITING是您在执行某些object.wait();并等待某人notify()时获得的状态。

如果您展示了一些syncPosts()代码,我们应该能够帮助您找到线程卡住的位置。

答案 1 :(得分:0)

经过很多Log.d()之后,我发现了问题:它在第58行

if(child.getNodeName() == "title")

将此行更改为

if(child.getNodeName().equals("title"));

一切正常