0

おそらく、この質問には 2 つの要素があります。

目標は、Android アプリのメモリ フットプリントを削減し、512 MB RAM 以下のローエンドの低/中 DPI デバイス (レガシー/リペイド電話など) で適度に使用可能なエクスペリエンスを可能にすることです。

私が観察しているのは、作成されたアクティビティがキャッシュされていると仮定して、いくつかのアクティビティをナビゲートした後、パフォーマンスが低下することです。

メモリ フットプリントを削減することを目的としたアクティビティ ナビゲーションの間にクリーンアップするための推奨される方法は何ですか?

4

1 に答える 1

0

あなたが書いた

What's the preferred way to clean up in between Activity navigation aiming to reduce memory footprint?

新しいアクティビティを開始するときに次の操作を行うと、アクティビティ スタックをクリアできます。

Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

これにより、NextActivity を除くすべてのアクティビティが閉じられます。

または、マニフェストで、別のアクティビティを開始したときにアクティビティが「存続」しないように指定できます。

<activity
  android:name=".CurrentActivity"
  //...
  android:noHistory="true"/>

また、クローズされたアクティビティがリークされていないことを確認する必要があります。たとえば、onPause() または onStop() を呼び出したときにアクティビティに登録されていたすべての BroadcastReceiver を登録解除する必要があります。

詳細は、最終的にはアプリの仕様によって異なります。

于 2014-12-11T22:32:45.140 に答える