3

アプリ内で新しいアクティビティ(プレーンな空のアクティビティでも)を開始するたびに、比較的大きな遅延(1〜2秒)が表示されます。LogCatをチェックすると、次のように表示されます。

// This is a transition from CurrentActivity to NewActivity
03-01 14:59:00.195: I/ActivityManager(515): START {act=android.intent.action.GET_CONTENT ...} from pid 9382
03-01 14:59:00.242: D/NewActivity(9382): Intent started
03-01 14:59:00.242: D/CurrentActivity(9382): Activity.onPause
03-01 14:59:00.359: D/dalvikvm(515): GC_CONCURRENT freed 824K, 20% free 10419K/12871K, paused 2ms+12ms
03-01 14:59:00.476: I/cat(416): <4>[22335.131317] CPU1: Booted secondary processor
03-01 14:59:00.476: I/cat(416): <6>[22335.138885] Switched to NOHz mode on CPU #1
03-01 14:59:00.742: W/ActivityManager(515): Activity pause timeout for ActivityRecord{4131c158 CURRENT-ACTIVITY}
03-01 14:59:01.179: D/dalvikvm(9382): GC_CONCURRENT freed 1562K, 68% free 10961K/33415K, paused 2ms+6ms
03-01 14:59:01.937: D/NewActivity(9382): NewActivity.onCreate

すべてが正常に機能し、クラッシュは発生せず、この奇妙な遅延だけであることに注意してください。アクティビティのコードをに入れてDialogFragmentダイアログを表示すると、事実上瞬時に実行されます。コードが別のアクティビティで実行される場合にのみ、この遅延が発生します。内部で実行されているコードCurrentActivity.onPauseは最小限であり、遅延の原因にはなりません。

追加:上記はAndroidで実行している場合API14です。別のデバイス上のAndroid2.2(API)は同じ遅延を示しますが、わずかに異なりLogCatます:

I/ActivityManager(2473): Starting activity: Intent { act=android.intent.action.GET_CONTENT cmp=NewActivity }
03-01 15:08:06.537: D/Editor(4591): Activity.onSaveInstanceState
03-01 15:08:06.537: D/Editor(4591): Activity.onPause
03-01 15:08:06.595: V/InputDevice(2473): ID[0]=0(0) Up(1=>0)
03-01 15:08:07.033: W/ActivityManager(2473): Activity pause timeout for HistoryRecord{CurrentActivity}
03-01 15:08:07.873: D/dalvikvm(4591): GC_FOR_MALLOC freed 5867 objects / 421464 bytes in 33ms
03-01 15:08:08.720: D/NewActivity(4591): NewActivity.onCreate

これが、NewActivityを作成して開始する方法です。Intentintent = new Intent(this、ImagePickerActivity.class); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(intent、ACTIVITY_RESULT_ADD_IMAGE);

CurrentActivityが大きすぎて投稿できません。

これを引き起こしている原因とそれを防ぐ方法について何か考えはありますか?

前もって感謝します、

4

0 に答える 0