1

我有一個膨脹的佈局(佈局1),並讓用戶的應用程序(的appA)之前做它的東西代替另一種(佈局2),從該用戶通過startActivityForResult有沒有一種方法可以模擬Android殺死後返回到我的應用程序?

appB的是啓動其他應用程序(程序appB),其佈局一個基於Unity3D的怪物,會對設備的內存/處理能力進行限制,因此當appA處於後臺時,它經常會被Android清除。

當appB完成後,Android爲我重新創建了appA,但這樣做的方式令人困惑。

即:它調用onCreate,但它與appA一起啓動,仍然顯示layout2,它在它到達appB之前膨脹的佈局。

這是令人困惑的,因爲onCreate重新初始化所有我的變量,似乎是從頭開始,但不知何故保留仍然顯示layout2的狀態。

如果我在appA上啓動appA時調用finish(),然後讓appB從頭開始appA,它會(並確實)首先對layout1進行膨脹,這與我得到的行爲明顯不同。

我的問題是,這種行爲是不一致的。很多時候,Android管理appB而不需要appA內存空間和調試,這非常困難。

我想知道是否有一些手動方式(通過Android Studio或代碼)挑釁Android應用程序的清理,而我在appB能夠看到和測試回來的副作用到appA後,它被Android帶回了生活。

+0

http://stackoverflow.com/questions/22400859/dont-keep-activities-what-is-it-for –

回答

1

我不知道是否有一些手工的方式...

是的,有。

您應該通過命令行工具或IDE中的任意一個,在後臺處理時終止您的appA進程。

如果不重複其他開發者的研究,我會將您的地址告知How to simulate Android killing my process

1

我發現這樣做,最方便的方法實際上是創建一個單獨的應用程序有一個活動,並且在onResume()做到以下幾點:

@Override 
protected void onResume() { 
    super.onResume(); 

    ActivityManager activityManager = 
      (ActivityManager) getSystemService(ACTIVITY_SERVICE); 

    activityManager.killBackgroundProcesses("your.app.id"); 
} 

每當我需要模擬我的應用程序由被殺害Android我只是切換到這個應用程序,並回到我測試的那個。

相關問題