1

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

这是代码:

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());

        }
    });
}

当我尝试在没有线程的情况下上传时,它可以完美运行......为什么?

4

2 回答 2

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();
}
于 2012-07-17T09:35:29.523 回答
1

您实际上并没有启动线程,请尝试以下操作:

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

  thread.start();
}

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

于 2012-07-17T09:31:57.397 回答