StartActivity未触发

时间:2014-07-31 21:21:16

标签: android

当运行下面的代码时,它会在“PC_Settings_Manager.getInstance()。getSettings()。isTTSEnabled();”行中抛出NullPointerException。 PC_Settings_Manager实例不为空,因为它是单例并且在应用程序启动时初始化。 null是Settings对象。但是,我依靠流程来启动欢迎活动,用户被迫进入设置屏幕并保存设置。那时设置对象不是null。那么,当我调试调试器进入if语句但startActivity不会触发???因此,值得关注的是不起作用。

    SharedPreferences sharedPreferences = getSharedPreferences(PC_Application_Constants.EHOPE_SETTINGS_FILE_NAME, MODE_PRIVATE);
    boolean isFirstTime = sharedPreferences.getBoolean(PC_Application_Constants.FIRST_TIME_USAGE_KEY, true);

    if (isFirstTime) {
        Intent pC_Welcome_Activity_Intent = new Intent(PC_LoginActivity.this, PC_Welcome_Activity.class);
        startActivity(pC_Welcome_Activity_Intent);
    }

    // Check Text To Speech Service
    boolean isTTSEnabled = PC_Settings_Manager.getInstance().getSettings().isTTSEnabled();

1 个答案:

答案 0 :(得分:2)

startActivity()是异步的。它不等待已开始的活动完成;而是你的代码继续从下一行开始运行。

如果您需要等待活动完成,请使用startActivityForResult()并将后续代码放在onActivityResult()中。