2012-11-27 78 views
2

我正在開發一個Android應用程序,這是我面臨的一個問題:安卓acitvity流

我的主菜單將通過圖像URI的意圖另一個活動的地方將顯示在第二個活動圖像。

我處理意圖獲取uri並將其轉換爲onStart()方法(我編碼我自己覆蓋超類方法)中的位圖。 (是正確的這樣做呢?)

,我應該在哪裏設置圖像上的活動圖像視圖?

我的問題是處理完圖像後,我的應用程序將被強制關閉。但是如果我刪除onStart()方法,第二個活動將不會出現錯誤,但不會顯示圖像(因爲我需要顯示圖像)。當我使用Log.d()方法來顯示程序停止的位置時,它確實表明程序運行到我處理意圖並獲取位圖(此時程序結束)爲止。

這裏是我onStrat的代碼()方法:

protected void onStart() 
    { 

     Bitmap newBitmap = null; 

     Intent imageURI = getIntent(); 
     Log.d("HERE", "intent received"); 

     String imageLoc = imageURI.getExtras().getString("IMAGE_URI"); 
     Log.d("HERE", imageLoc); 

     Uri imageLocation = Uri.parse(imageLoc); 
     Log.d("HERE", "Uri reated"); 

     try 
     { 
     newBitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageLocation); 
    } 
     catch (FileNotFoundException e) 
     { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

     catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

     Log.d("HERE", "bitmap created"); 


} 

我搞砸了的東西,終於找到了解決辦法。感謝異步任務信息,它確實加快了我的過程。

謝謝。

+1

份額onPostExecute()方法,你正在處理您的位圖的代碼,您傳遞圖像的URI的第二個活動的方式。 – hardartcore

+0

@ Android-Developer這裏是我的onStart()方法。基本上這是一個複製和粘貼從這裏到那裏從我谷歌搜索。 – nicholas89theclon

+0

我將uri作爲字符串從主菜單傳遞到第二個活動,並在第二個活動中將字符串處理回uri。 – nicholas89theclon

回答

0

處理意圖,並獲取uri並在onResume()中顯示圖像,它會爲你工作。

0

我處理的意圖得到URI並將其轉換爲位圖中 的在onStart()方法(這是我自己的編碼來覆蓋超類 方法)。 (這樣做是否正確?)

創建Activity時,您應該將任何CPU密集型操作放在單獨的線程中。最常見的方法是使用AsyncTask來處理位圖。剛從Intent獲得額外信息後,您應該開始執行onCreate()方法。

我應該在哪裏將圖像設置到活動的圖像視圖上?

IMO,做到這一點的最好的地方 - 是AsyncTask