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用户界面到非用户界面线程通信的内容。 希望这有助于让你目瞪口呆