我的意图只有在某些数据尚未插入时才会出现。这就像一个自定义表单来插入一些数据。如果数据已经插入,以后打开的应用程序就不会再出现intent了。它将打开另一个意图,即默认意图。(通常这可能发生在应用程序第一次打开时)
由于默认意图只能是一个,我该如何管理意图?
例如:如果是第一次打开的应用程序会在下次打开应用程序时启动Intent Form(假设数据已经插入)它会启动Intent MainActivity
我的意图只有在某些数据尚未插入时才会出现。这就像一个自定义表单来插入一些数据。如果数据已经插入,以后打开的应用程序就不会再出现intent了。它将打开另一个意图,即默认意图。(通常这可能发生在应用程序第一次打开时)
由于默认意图只能是一个,我该如何管理意图?
例如:如果是第一次打开的应用程序会在下次打开应用程序时启动Intent Form(假设数据已经插入)它会启动Intent MainActivity
我假设您正在做类似注册之类的事情,并且想显示此表格一次。你有很多选择。
1)正如 Ahmad(在评论中)所说,使用SharedPreferences,并在其中添加一些标志,它可以告诉您数据是否可用。在活动/onCreate 的最开始添加检查并打开相应的意图/活动取决于检查。
2)您也可以使用数据库来查看此值。
我建议您使用 SPLASH 屏幕,将这个值/注册数据检查到其中。如果可用,则启动活动 A,否则启动注册/默认活动。
我只使用 sharedpreferences 插入数据一次,只需以这种方式使用它,在下面的代码中,只有在首次安装应用程序后才会启动意图,之后它将启动主要活动意图。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (isFirstTime()) {
// startIntent Form
}
}
private boolean isFirstTime()
{
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
boolean ranBefore = preferences.getBoolean("RanBefore", false);
if (!ranBefore) {
// first time
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("RanBefore", true);
editor.commit();
}
return !ranBefore;
}