2015-12-18 50 views
1

這個問題從沒有回答我的問題出現了: android start activity from background threadAndroid的startActivityForResult

從我在這個問題上我覺得現在的努力是沒有辦法的後臺線程爲用戶輸入做startActivityForResult和得到的結果(例如通過onActivityResult)。請確認現在不可能通過已知的方法或解決方法的建議(或者它的工作原理的Android版本,我嘗試過4x)。我在下面調查的選項詳情:

我的主要活動通過timertask啓動後臺線程,稍後由用戶啓動其他應用程序移動到後臺。然後背景TimerTask的線程試圖例如爲:

 Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    //takePictureIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
     //takePictureIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); 
     //startActivity(takePictureIntent); 
    } 

如果代碼是如上setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)評論的,照相機開始在主活動堆棧級別的背景。如果setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)取消註釋,則相機在前景中開始,但是在主要活動onActivityResult中,在我呼叫startActivityForResult後立即調用,而不等待相機拍照。

回答

0

嘗試使用runOnUiThread在主線程中執行代碼:

runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
     startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); 
     } 
    }); 
+0

嘗試已經爲其他的意圖,試圖現在的MediaStore.ACTION_IMAGE_CAPTURE - 相機是沒有看到在屏幕上。 –

+1

現在你的問題是什麼? – Jas

相關問題