java - 在 Android 应用程序中使用线程

标签 java android multithreading

在我的 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/

相关文章:

java - sikuli中的日期函数

java - 自签名证书旁路不起作用

安卓捏缩放

android - ADT 需要 'org.eclipse.wst.sse.core 0.0.0' 但找不到

multithreading - 生产者消费者仅使用 1 个额外信号量

java - 如何从线程调用 UIThread 上的方法?

java - 如何让 libjpeg-turbo 的 java 包装器真正压缩?

java - AchartEngine 获取触摸点位置

android - NestedScrolling with NestedScrollView, RecyclerView (Horizo​​ntal), inside a CoordinatorLayout

python - 如何为线程设置超时,以防无响应并终止线程?