在我的 Android 应用程序中,我有一个 Activity 和多个不是 Activity 的 java 类。 所以在另一个java类中有一个get方法,它返回一个Object。该方法启动一个新线程来获取数据并将其附加到对象
现在我在 Activity 中调用此 get 方法来获取该对象。我正在做这样的事情 -
mNewsList = new ArrayList<NewsContentManager.NewsPojo>();
mNewsList = manager.getNewsList();
and the method is this -
public ArrayList<NewsPojo> getNewsList() {
Log.v("TAG", ""+newsList);
if(newsList == null)
{
Thread t = new Thread(){
public void run(){
Log.v("TAG", "Inside run");
np1 = new NewsPojo();
np1.setTitle("A");
np1.setDescription("dhghfdklsa");
np2 = new NewsPojo();
np2.setTitle("B");
np2.setDescription("dhghfdklsa");
np3 = new NewsPojo();
np3.setTitle("c");
np3.setDescription("dhghfdklsa");
newsList = new ArrayList<NewsPojo>();
Log.v("in run",""+newsList);
newsList.add(np1);
newsList.add(np2);
newsList.add(np3);
Log.v("in run",""+newsList.size());
setNewsList(newsList);
handler.sendEmptyMessage(0);
}// end of run
};// end of thread
t.start();
}//end of if
return newsList;
}
但是我在 Activity 中遇到 nullPointer 异常。 如果我从此方法中删除线程,那么它可以正常工作。 我该怎么办?
谢谢
最佳答案
因为您的线程完成工作的时间比预期晚。你应该同步线程和ui线程。
看看AsyncTask Android 的。
关于java - 在 Android 应用程序中使用线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6505595/