2016-07-28 136 views
0

我這個爲什麼我的活動重建,而不是重新啓動

Intent window = new Intent(mContext, popup.class); 
window.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |Intent.FLAG_ACTIVITY_REORDER_TO_FRONT|Intent.FLAG_ACTIVITY_MULTIPLE_TASK); 
mContext.startActivity(window); 

我的活動開始和日誌

onCreate 
onStart 
onResume 

現在我想阻止我的活動我用這個

開始我的活動
moveTaskToBack(true); //i don't know if this best way to stop an activity 

and the Log

onPause 
onStoped 

的onDestroy不叫

現在我想重新開始同一個活動,我使用

Intent window = new Intent(mContext, popup.class); 
    window.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |Intent.FLAG_ACTIVITY_REORDER_TO_FRONT|Intent.FLAG_ACTIVITY_MULTIPLE_TASK); 
    mContext.startActivity(window); 

這裏它不是重新啓動活動及其做出新的

onCreate 
onStart 
onResume 

這是我在清單中的活動

<activity 
     android:name=".activity.popup" 
     android:taskAffinity=".MyDialog" 
     android:configChanges="orientation|screenSize" 
     android:exported="true" 
     android:label="@string/app_name" 
     android:theme="@style/Theme.FloatingWindow.Popup" 
     android:windowSoftInputMode="adjustResize|stateAlwaysHidden" 
     tools:ignore="ExportedActivity" 

     > 

    </activity> 

注**如果我使用launchMode singleInstance其重新啓動,而不是創造新的活動,但這裏的問題我不能實例相同的活動不同的數據

+0

通過調用'Intent window = new Intent(mContext,popup.class)',即使沒有標誌,它也會創建一個新的活動實例,它明確聲明它是新的任務並且與發送的任務無關背部。因此,您的*新*活動會經歷基本的Android生命週期:onCreate,onStart等。 – NitroNbg

+0

@NitroNbg所以解決方案我該如何啓動停止的活動? – medo

+0

使用finish()停止 – DKV

回答

0

不要添加此標誌Intent.FLAG_ACTIVITY_NEW_TASK也是這個標籤清單中添加到您的活動android:launchMode="singleInstance"

+0

'機器人:launchMode =「singleInstance」' 使用它時,我不能午餐同樣的活動與不同的數據 'Intent.FLAG_ACTIVITY_NEW_TASK' iam使用這個,因爲我從上下文無活動 – medo

+0

開始活動,但'android:launchMode =「singleInstance」'使我的活動重新啓動沒有reCraete,但我不能再用不同的數據午餐活動 – medo

+0

爲什麼不能您可以在每次啓動時添加不同的參數,沒有任何問題。 –

相關問題