2011-11-05 93 views
0

我有兩個活動Main和SearchEvent活動。 Main活動具有launchmode:「singleTask」,並且沒有任何與SearchEvent活動關聯的特殊參數。Android launchMode:singleTask覆蓋

當我單擊主活動中存在的按鈕時,SearchActivity活動將從前臺開始並顯示事件列表。當我點擊其中一個列表項目時,這些項目應該獲取eventId並啓動Main.class活動,但是由於Main.class已經存在於堆棧中,它將放置在最上面但殺死了SearchActivity(我看到了onDestroy方法被調用)。

我不想調用SearchEvent的onDestroy方法,只是SearchEvent活動在後臺進行,主要活動彈出。

另外,如果我嘗試使用launchMode =「singleTop」它啓動另一個主要活動,我不尋找的實例。

我能啓動相同的Main實例並在後臺移動SearchEvent的設置是什麼?

清單文件中的代碼。

MainActivity

<activity 
     android:configChanges="orientation" 
     android:launchMode="singleTask" 
     android:name=".Main" 
     android:screenOrientation="portrait" 
     android:theme="@style/Theme.CustomDialog" > 
     <intent-filter > 
      <action android:name="android.intent.action.VIEW" /> 
     </intent-filter> 
     <intent-filter > 
      <action android:name="android.intent.action.SEND" > 
      </action> 

      <category android:name="android.intent.category.DEFAULT" > 
      </category> 

      <data android:mimeType="image/*" > 
      </data> 
     </intent-filter> 
     <intent-filter > 
      <action android:name="android.intent.action.SEND" > 
      </action> 

      <category android:name="android.intent.category.DEFAULT" > 
      </category> 

      <data android:mimeType="video/*" > 
      </data> 
     </intent-filter> 
    </activity> 
    <activity> 

SearchEvent代碼

<activity 
      android:configChanges="orientation" 
      android:label="@string/app_name" 
      android:name="SearchEvent" 
      android:screenOrientation="portrait" 
      android:theme="@style/Theme.CustomDialog1" > 
      <intent-filter > 
       <action android:name="android.intent.action.VIEW" /> 
      </intent-filter> 
     </activity> 

的代碼使用來調用主要活動的第一次。

Intent mainIntent = new Intent(SignIn.this, Main.class); 
startActivity(mainIntent); 

代碼來調用SearchEvent從主要活動

Intent searchActivity = new Intent(Main.this, SearchEvents.class); 
startActivity(searchActivity); 

代碼從SearchEvents活動

Intent mainIntent = new Intent(SearchEvents.this, Main.class); 
startActivity(mainIntent); 

回答

0

再次調用主要活動如果搜索活動是爲了顯示用戶清單並讓用戶選擇一個,然後用此結果調用主要活動,那麼您可能希望以不同的方式完成此操作。

如果我理解正確這,你可能需要的主要活動使用startActivityForResult()開始搜索活動,並有搜索活動只是所選事件重新使用setResult()它完成時的主要活動。通過這種方式,搜索活動不必再次開始主要活動,它只是「回到它」。