Java 如何使用线程优化android代码
我的Java 如何使用线程优化android代码,java,android,multithreading,optimization,Java,Android,Multithreading,Optimization,我的活动加载约3-5秒(太长)。 如何使用新的线程优化OnCreate方法? 或者这里有其他方法来优化我的代码 我试图创建新的线程,但在访问在工作线程中生成的对象时总是遇到问题 这是我的OnCreate代码: if (getIntent().getBooleanExtra(EXIT_KEY, false)) { finish(); } super.onCreate(savedInstanceState); if (s
活动
加载约3-5秒(太长)。
如何使用新的线程
优化OnCreate方法?
或者这里有其他方法来优化我的代码
我试图创建新的线程
,但在访问在工作线程
中生成的对象时总是遇到问题
这是我的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();
}
});
您应该考虑使用-IT作为占位符,并在调用VIEW StubBug()时将其替换为实际布局。如果布局复杂,这将减少活动启动时间。您还可以将任何昂贵的方法调用放在onResume()而不是onCreate()中,以加快速度
ViewStub stub = (ViewStub) findViewById(R.id.stub);
View inflated = stub.inflate();
使用Android AsyncTasks执行此类任务,您还可以使用onPostExecute()方法访问UI视图。
默认情况下,多个启动的AsyncTasks按顺序执行,但您可以使用executeOnExecutor()以真正并行的方式执行多个独立任务。
尝试在WWW上阅读关于android用户界面到非用户界面线程通信的内容。
希望这有助于让你目瞪口呆