我有一个 android 应用程序,我想在全新安装后打开一个不同的活动,然后是我的主要活动。
我使用 startActivityForResult() 和 SharedPreferences 进行了尝试。这是我的代码:
主要活动:
公共类 ONTTMainActivity 扩展 Activity {
静态最终 int REQUEST_CODE = 5;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences settings = getSharedPreferences("prefs", 0);
boolean firstRun = settings.getBoolean("firstRun", true);
if(firstRun){
startActivityForResult(
new Intent(this, ONTTSplashActivity.class), REQUEST_CODE);
}
setContentView(R.layout.activitymain);
}
第二个活动:
公共类 ONTTSplashActivity 扩展活动 {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activityonttsplash);
final Button btnSkip = (Button) findViewById(R.id.button_skip);
btnSkip.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
setResult(RESULT_OK);
finish();
}
});
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Toast.makeText(ONTTSplashActivity.this, "Toast Reached", Toast.LENGTH_LONG).show();
if (resultCode == RESULT_OK) {
SharedPreferences settings = getSharedPreferences("ONTT_prefs", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("firstRun", false);
editor.commit();
}
}
问题是即使第二个活动结束,onActivityResult 函数中的代码也永远不会执行。我尝试使用吐司来查看是否已达到。
我见过几个类似的问题,但我已经尝试了所有解决方案,但它不起作用。