2011-12-07 38 views
12

我想讓我的活動關閉並返回結果,我在我的父活動中有onActivityResult,並且我在其他地方使用了接近下面的相同方法。Finishactivity不完成活動?

public void deleteFile(){ 
     boolean deleted=FileManager.getInstance().deleteMeasurementData(this.getIntent().getData(), this); 
     if(deleted){ 
      Toast.makeText(this, originalData.getName() +".mmd Has been deleted", Toast.LENGTH_SHORT); 
      setResult(EditMeasurement.RESULT_YES_DELETED); 
      finishActivity(EditMeasurement.RESULT_YES_DELETED); 
     }else { 
      Toast.makeText(this, originalData.getName() +".mmd did NOT delete", Toast.LENGTH_SHORT); 
      Log.e(TAG, "File did NOT delete error"); 
     } 

    } 

這種方法是從這個菜單中調用:

public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle item selection 
     Log.i(TAG, "something choosen "+item.getItemId()+" it should have been: "+R.id.om_measurement_menu_delete); 

     switch (item.getItemId()) { 
     case R.id.om_measurement_menu_edit: 
      editFile(); 
      return true; 
     case R.id.om_measurement_menu_delete: 
      deleteFile(); 
      return true; 
     case R.id.om_measurement_menu_cancel: 
      endActivity(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
     } 
    } 

任何有什麼好主意,爲什麼它不收?

+1

只要把完成()在DELETEFILE(),讓我知道發生什麼事.. – user370305

回答

6

我有它的光潔度()即使有回報,但它不會關閉,後來我意識到,那個特定活動所需的android:launchMode="singleTask"在清單

+1

IMO,這個答案應該已經要麼因爲它似乎是一個有價值的貢獻,所以對接受的答案進行評論或編輯。然而,海報沒有足夠的評論聲譽,編輯答案是許多人不敢做的事情(包括我自己,我更喜歡評論中的建議)。 – mcmlxxxvi