2013-07-26 28 views
9

すばらしい30分間試してみると、誰もが自分のアプリの操作性が良いと思うでしょう。しかし、アプリが1日ほどデバイスの背景に座っていると、NullPointerExceptionsが表示され、Garbage Collectorがあなたのものを盗んだため、期待通りに機能しません。 バックグラウンドで長時間実行されているアプリをシミュレートする方法はありますか?Android:長い実行時間をシミュレート

+0

あなたは 'NullPointerException'を取得していますか? – andy256

答えて

0

特定の時間を待つ必要はありません。あなたは記憶を食べる何かをしなければなりません。これはあなたがタスクのために作成する特別なアプリかもしれませんが、本当にする必要はありません。

私の経験では、ほとんどのゲームはうまくいくようです。多くのグラフィックスを持つゲームは、テクスチャなどのメモリを大量に使い果たしているので、最も効果的です。高度なグラフィックや重い処理がないにもかかわらず、Angry BirdsやCandy Crushも機能します(おそらく彼らが電池を噛んでいるのと同じ理由)。通常、1レベル程度の演奏後、アクティビティに戻って何が失われたかを見ることができます。

データを永続化/初期化するスマートな方法を使用するため、問題はそれほどではありませんが、予期せぬことに遭遇することがあります。それを追跡する。

4

設定 - >開発者オプション - >バックグラウンドプロセスの制限 - >最大で1つのプロセス。

楽しいことが終わったら、それを元に戻すことを忘れないでください。乾杯。

+0

休眠中のものはありません。休眠状態であれば、まだRAMに入っていて、一時停止状態であることを意味しています。まだRAMに残っていれば、30分後にテストする意味がありません。すべてが同じになります。 GCは、もはや参照されていないオブジェクトにのみ影響します。したがって、GCだけでは何の影響もありません。ただし、アプリケーションのライフサイクルに影響を及ぼすものは、上記の方法を使用してテストできるアクティビティまたはフラグメントの再作成です。 –

+0

アクティビティがフォアグラウンドにある間も、GCは参照されていないオブジェクトを収集しますが、私はそれをまったく疑っていませんでした。しかし*どちらの状態でも、参照されたオブジェクトはまったく収集されません。アクティビティで使用しているオブジェクトがそのアクティビティの中でホストされている場合、参照はチェックアウトされます。あなたがこの事実を反対であると知っているなら、参考文献を提供してください。しかし、私はあなたが何を記述しているのか全く遭遇していません。 –

+0

Dev SDKから: "アクティビティが停止すると、アクティビティオブジェクトはメモリに常駐し、アクティビティが再開すると呼び出されます。コールバックメソッドの間に作成されたコンポーネントを再初期化する必要はありません。あなたが普通のことから何かをやっていない限り(もちろん、すべてが問題ないことを確認する必要がある場合は)、GCによって何も収集されません。なぜなら、これらのオブジェクトは* garbage *ではないからです。それでも。あなたがチェックする必要があるのは、アクティビティが破壊された場合だけです。もう一度、上記の方法でこれを行うことができます –

関連する問題