2011-02-17 8 views
0

Activityの設定が本当に遅くなったらどうすればいいですか?ときどき私はANR keyDispatch errorになります。第2アクティビティの起動が遅い

PreferenceActivityを使用しているとも言えます。私が設定に入る最初の絶対的な遅延時間は本当に遅いです(約5-10秒)が、そうでなければ超滑らかになります。これは、アプリケーションを再インストールして初めて別の設定を開始したときに表示されます(初めてのことです)。私の設定で

いくつかのコードPreferenceActivity

@Override 
protected void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 

    pref = getPreferenceManager();  

    pref.setSharedPreferencesName(LiveWallpaper.PREFERENCES); 
    addPreferencesFromResource(R.xml.live); 
    pref.getSharedPreferences().registerOnSharedPreferenceChangeListener(this); 

    pref.findPreference("Username").setOnPreferenceClickListener(new OnPreferenceClickListener() {   
     public boolean onPreferenceClick(Preference preference) { 
              // Stuff... 
       return true;     
      } 
     } 
    ); 
// And so on... 

基本的に、私はこのエラーが置かれている場所を知りたい、質問はどのように? LogCatで見ることができますそれは遅延の原因は何ですか?

ありがとうございました!

+0

、 私はこの問題は、あなたがのmanifest.xmlファイルであなたの活動に与えたスタイルであると思います。 特別なテーマを選択した場合は、そのファイルを投稿してください。完全に読み込むには若干時間がかかります。 – Bush

答えて

1

TraceViewを実行して、時間がかかることを正確に測定しましたか?これはあなたを正しい方向に導くでしょう。 Eclipse内からの使用は非常に簡単です。 DDMSビューには、TraceViewの使用を開始するボタンがあります。

+0

ありがとう、それを見てください – Curtain

1

Logcatで遅延を確認することはできません。例で :私は同じ問題が発生しました

long start; 
long stop; 

start = System.getCurrentTimeMillis(); 
pref = getPreferenceManager(); 
stop = System.getCurrentTimeMillis(); 
Log.d("Manager: ", "Time" + (stop - start)); 

start = System.getCurrentTimeMillis(); 
pref.setSharedPreferencesName(LiveWallpaper.PREFERENCES); 
stop = System.getCurrentTimeMillis(); 
Log.d("SetSharedPrefs: ", "Time" + (stop - start)); 
+0

実際には、logcatはどのくらいの時間がかかるか教えてください。例: 344-384 /? I/ActivityManager:表示されたpck.example.MyActivity:+ 1s982ms – alicanbatur

関連する問題