当我的设置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 :(得分:1)
您是否尝试过运行TraceView来准确衡量需要花费多长时间?这将指导您正确的方向。它在Eclipse中很容易使用。在DDMS视图中,有一个按钮可以开始使用TraceView。
答案 1 :(得分: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));