gpt4 book ai didi

java - 从一个单独的线程开始 Activity ?

转载 作者:行者123 更新时间:2023-11-30 02:32:43 25 4
gpt4 key购买 nike

我有一个 android 应用程序,它在主线程中拍照并创建一个新线程,以便将此图像发送到服务器并接收响应。现在,我想将服务器发送的信息保存在我手机的联系人列表中,为此我尝试使用以下代码在这个新线程上开始一个 Activity :

private void addContact() {

Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);

intent.putExtra(ContactsContract.Intents.Insert.NAME, DisplayName);
intent.putExtra(ContactsContract.Intents.Insert.PHONE, WorkNumber);
intent.putExtra(ContactsContract.Intents.Insert.EMAIL, emailID);

this.startActivity(intent);

}

但他给我的错误是:在 onCreate() 之前系统服务对 Activity 不可用

我对这条消息的看法是因为在这个新线程中它没有任何 onCreate() 方法,这就是它抛出这个错误的原因。

谁能告诉我应该如何开始这项 Activity 。

最佳答案

不要使用单独的Thread 将数据发送到服务器,而是尝试使用AsyncTask:

  1. doInBackground() 中进行网络调用,并在 BundleString[] 数组中返回服务器响应到onPostExecute().

  2. onPostExecute()中,将服务器数据添加到intent中,然后调用startActivity()

试试这个。它会起作用。您收到错误是因为您在另一个线程上调用 startActivity()。您需要在主 (UI) 线程上调用它。

关于java - 从一个单独的线程开始 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27085511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com