线程和上下文问题

时间:2012-07-17 09:28:26

标签: android multithreading android-context

我正在尝试在不同的线程上传联系人,我正在获取应用程序上下文但似乎无法正常工作。为什么呢?

以下是代码:

private void uploadall() {
    new Thread(new Runnable() {
        public void run() {

            Contacts contacts = new Contacts(getApplicationContext());
            contacts.phoneandname();

            // Apps
            ListApps mList = new ListApps();
            mList.loadInstalledApps(false, getApplicationContext());

        }
    });
}

当我尝试在没有线程的情况下上传时,它完美地工作......为什么?

2 个答案:

答案 0 :(得分:1)

您实际上并未启动该主题,请尝试以下操作:

private void uploadall() {
  Thread thread = new Thread(new Runnable() {
    public void run() {
      ...
    }
  });

  thread.start();
}

在Java中开始使用多线程时,Oracle并发教程是一个非常好的资源,可以找到here

答案 1 :(得分:1)

尝试:

private void uploadall() {
private Context context=getApplicationContext();

    Thread thread = new Thread(new Runnable() {
    public void run() {

            Contacts contacts = new Contacts(context);
            contacts.phoneandname();

            // Apps
            ListApps mList = new ListApps();
            mList.loadInstalledApps(false,context);

        }
    });
    thread.start();
}