第二次活动启动缓慢

时间:2011-02-17 20:03:46

标签: android

当我的设置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中看到它导致延迟吗?

感谢您的回答!

2 个答案:

答案 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));