0

ここで問題があります。アクションを実行するアクティビティを呼び出すサービスがあります。アクティビティはランダムに呼び出されるか、事前に定義された期間に呼び出されます。

ただし、アクティビティが呼び出されるたびに RAM の使用量が 2 ~ 3 MB 増加します。

これは、サービスからアクティビティを呼び出す方法です。

         Intent callIntent = new Intent(Intent.ACTION_CALL);
         callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         callIntent.setClass(getBaseContext(),CustomDialog.class);
         startActivity(callIntent);
4

1 に答える 1

1

おそらく、毎回アクティビティの新しいインスタンスを作成しているためです。FLAG_ACTIVITY_REORDER_TO_FRONTの代わりに を使用FLAG_ACTIVITY_NEW_TASKするか、古いアクティビティ インスタンスがある時点で確実に破棄されるようにします (たとえば、ユーザーが BACK を押すか、または を呼び出しますfinish())。

DDMS からヒープ ダンプを取得し、それを MAT で調べて、問題がどこにあるのかを具体的に判断してください。

于 2013-07-30T17:47:54.190 に答える