2011-12-01 86 views
0

我想捕獲一個圖像與android.provider.MediaStore.ACTION_IMAGE_CAPTURE和事情似乎工作正常,唯一的問題是,該進程com.android.camera在返回後不會被破壞,並且會干擾其他應用程序的運行。com.android.camera進程不被銷燬

所以我想知道爲什麼它沒有被銷燬,並且一旦捕獲完成後我如何銷燬它?謝謝任何幫助,將不勝感激。

這裏是我的代碼:

private OnClickListener buttonCaptureListener = new OnClickListener(){ 
    public void onClick(View v){ 
     String path = Environment.getExternalStorageDirectory() + "/"+Long.toHexString(System.currentTimeMillis())+".jpg"; 
     File file = new File(path); 
     Uri outputFileUri = Uri.fromFile(file); 

     Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
     startActivityForResult(intent,SelectImagesActivity.REQUEST_CAPTURE);     
    } 
}; 

結果處理:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if(requestCode == SelectImagesActivity.REQUEST_CAPTURE){ 
     if(resultCode == RESULT_OK){ 
      // display image and etc. 
     } 
    } 
} 
+0

這很正常,只要系統具有足夠的資源,android就會讓應用程序在後臺運行。當系統需要記憶時,它們最終會被殺死。一般來說不應該是一個問題。究竟是什麼問題 - 這是如何幹擾你的應用程序? – 2011-12-01 01:23:20

+0

我捕獲/選擇圖像後,他們被處理(意思是調整大小,不是什麼),然後上傳似乎正在發生的事情是處理正在顯着減慢與此過程運行,我手動銷燬它在DDMS後,一切都回到正常。 –

+0

我似乎無法再重現該問題了。我沒有改變任何東西,但問題似乎沒有了。 –

回答

0

我也認爲這是過程不是立即銷燬正常動作。

我建議下面的代碼明確的含義。
這是不同的,追加額外的數據 - ('返回數據',真) - 意圖。

private OnClickListener buttonCaptureListener = new OnClickListener(){ 
    public void onClick(View v){ 
     String path = Environment.getExternalStorageDirectory(); 
     String file_name = Long.toHexString(System.currentTimeMillis())+".jpg"; 
     File file = new File(path , file_name); 
     Uri outputFileUri = Uri.fromFile(file); 

     Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
     intent.putExtra("return-data", true); 
     startActivityForResult(intent,SelectImagesActivity.REQUEST_CAPTURE);     
    } 
+0

剛剛嘗試過,它不會殺死進程。 –