新規インストール後にメインのアクティビティとは別のアクティビティを開きたい Android アプリケーションがあります。
startActivityForResult() と SharedPreferences を使用してこれを試しました。これが私のコードです:
主な活動:
public class ONTTMainActivity extends Activity {
static final 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);
}
2 番目のアクティビティ:
public class ONTTSplashActivity extends Activity {
@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();
}
}
問題は、2 番目のアクティビティが終了しても、onActivityResult 関数のコードが実行されないことです。届いているかトーストを使ってみました。
同様の質問をいくつか見ましたが、すべての解決策を試しましたが、うまくいきません。