【发布时间】:2016-03-07 20:00:27
【问题描述】:
我的Activity 加载大约 3-5 秒(太长)。
如何使用新的Threads 优化我的 OnCreate 方法?
或者这里有其他方法可以优化我的代码?
我尝试创建新的Threads,但在访问Objects 时总是遇到问题,这是在工作Thread 中生成的。
这是我的OnCreate 代码:
if (getIntent().getBooleanExtra(EXIT_KEY, false)) {
finish();
}
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
mSignInProgress = savedInstanceState
.getInt(SAVED_PROGRESS, STATE_DEFAULT);
}
// Setting Content View
setContentView(R.layout.activity_main);
mClient = buildGoogleApiClient();
settings = getSharedPreferences(APP_PREFERENCES, MODE_PRIVATE);
settingsVK = getSharedPreferences(VK_PREFERENCES, MainActivity.MODE_PRIVATE);
// Load Navigation Drawer
getDrawer(
settingsVK.getString(VK_INFO_KEY, ""),
settingsVK.getString(VK_EMAIL_KEY, "")
);
if (getIntent().getBooleanExtra(JUST_SIGNED_KEY, false))
initDialog_share();
// Get and set system services & Buttons & SharedPreferences & Requests
inputMethodManager = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
vk_sign_out = (CustomView) findViewById(R.id.vk_sign_out);
if (!settingsVK.getBoolean(VK_SIGNED_KEY, false)) {
vk_sign_out.setEnabled(false);
}
// VK sign out button
vk_sign_out.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
settings
.edit()
.putBoolean(SIGNED_IN_KEY, false)
.putString(PROFILE_PHOTO_LOCATION_KEY, "")
.apply();
startActivity(new Intent(MainActivity.this, FirstLaunchActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
finish();
}
});
【问题讨论】:
标签: java android multithreading optimization