[英]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
:
在doInBackground()
進行網絡調用, doInBackground()
將Bundle
或String[]
數組中的服務器響應返回到onPostExecute()
。
在onPostExecute()
,將服務器數據添加到意圖中,然后調用startActivity()
。
嘗試這個。 它會工作。 由於在另一個線程上調用startActivity()
導致出現錯誤。 您需要在主(UI)線程上調用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.