Java 从单独的线程开始活动?
我有一个android应用程序,它在主线程中拍摄照片并创建一个新线程,以便将此图像发送到服务器并接收响应。现在,我想将服务器发送的信息保存在手机的联系人列表中,因为我正在尝试使用以下代码在此新线程上启动活动:Java 从单独的线程开始活动?,java,android,Java,Android,我有一个android应用程序,它在主线程中拍摄照片并创建一个新线程,以便将此图像发送到服务器并接收响应。现在,我想将服务器发送的信息保存在手机的联系人列表中,因为我正在尝试使用以下代码在此新线程上启动活动: private void addContact() { Intent intent = new Intent(Intent.ACTION_INSERT); intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
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()之前的活动无法使用系统服务。
我对这条消息的看法是,因为在这个新线程中它没有任何onCreate()方法,这就是它抛出这个错误的原因
有人能告诉我应该如何启动此活动。请尝试使用
异步任务,而不是使用单独的线程
将数据发送到服务器:
在doInBackground()
中进行网络调用,并将包中的服务器响应
或字符串[]
数组返回到onPostExecute()
在onPostExecute()
中,将服务器数据添加到intent中,然后调用startActivity()
试试这个。它会起作用的。由于正在另一个线程上调用startActivity()
,因此出现错误。您需要在主(UI)线程上调用它。两个问题:(1)最后一行中的这个
关键字指的是什么?(2) 你从哪个线程调用addContact()方法
?我的错。我从某处复制了代码,但忘记删除这个关键字。但我也试过把它去掉。我也犯了同样的错误。我是从一个新线程而不是主线程调用addContact尝试使用新处理程序添加联系人。Post您是否有一些示例代码,如“我如何才能这样做?”?