1

私はレイアウト(layout1)を膨張させ、ユーザーをすることができますアプリ(APPA)を持っているその前のものは、ユーザーがAPPBがあるstartActivityForResultAndroidによって殺された後、私のアプリに戻るのをシミュレートする方法はありますか?

を介して他のアプリ(APPB)を起動し、そこから別の(LAYOUT2)とそのレイアウトを置き換えませんデバイスのメモリ/処理能力の限界に課税するUnity3Dベースの怪物であり、その結果、appAがバックグラウンドにいる間にAndroidによって頻繁にクリーンアップされます。

appBが終了すると、Androidは私のためにappAを再作成しますが、紛らわしい方法でそれを行います。

つまり、onCreateを呼び出しますが、appBを起動してからapp2に移動する直前に、layout2が表示されます。

これは、onCreateがすべての変数を再初期化し、最初から開始されているように見えますが、レイアウト2を表示している状態を何とか保持するためです。

これは、appBを起動してからappBを起動したときにappAでfinish()を呼び出すと、最初にlayout1を膨張させる最初の場所からappAを開始する動作とは明らかに異なります。

私の問題は、この動作が一貫していないことです。 appAのメモリ空間を必要とせずにAndroidがappBを管理し、これをデバッグするのに多くの時間は本当に厳しいものです。

appBに戻ってくる副作用を確認してテストできるようにするために、手動でAndroidスタジオまたはコードを使用してappAをクリーンアップする方法があるのでしょうかそれがAndroidによって生まれ変わった後にappAへ私はそれを行うために見つけた

+0

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

答えて

1

いくつかの手動方法がある場合、私は思ったんだけど...

はい、あります。

appAプロセスは、コマンドラインツールまたはIDEのいずれかを使用してバックグラウンドで終了してください。

他の開発者の調査を複製せずに、私はあなたに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私はこのアプリに切り替えて、私がテストしたものに戻ります。

関連する問題