簡體   English   中英

從單獨的線程開始活動?

[英]Starting activity from a separate thread?

我有一個Android應用程序,該應用程序在主線程中拍攝照片並創建一個新線程,以便將該圖像發送到服務器並接收響應。 現在,我想將服務器發送的信息保存在手機的聯系人列表中,為此,我嘗試使用以下代碼在此新線程上啟動活動:

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()方法,因此這是引發此錯誤的原因。

有人可以告訴我如何開始這項活動。

代替使用單獨的Thread向服務器發送數據,請嘗試使用AsyncTask

  1. doInBackground()進行網絡調用, doInBackground()BundleString[]數組中的服務器響應返回到onPostExecute()

  2. onPostExecute() ,將服務器數據添加到意圖中,然后調用startActivity()

嘗試這個。 它會工作。 由於在另一個線程上調用startActivity()導致出現錯誤。 您需要在主(UI)線程上調用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM