2011-02-17 5 views
0

내 설정 Activity이 정말로 느리게 시작되면 어떻게해야합니까? 가끔은 ANR keyDispatch error이 걸립니다.두 번째 활동이 느리게 시작됩니다.

또한 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

관련 문제