Android 检查意图是否存在
在我的程序中,用户从欢迎页面开始使用应用程序,需要输入详细信息才能继续。当他们到达主页时,他们将输入一个名称,并将其作为意图传递到主页 我希望用户在第一次使用该应用程序时就被带到欢迎页面,然后一直被带到主页 我正在将名称保存为共享首选项,因此它应该始终存在 因此,我尝试始终将用户发送到主页,但如果不存在任何意图(即第一次),他们将被带到主页,但我无法使其工作。这是我的努力Android 检查意图是否存在,android,android-intent,Android,Android Intent,在我的程序中,用户从欢迎页面开始使用应用程序,需要输入详细信息才能继续。当他们到达主页时,他们将输入一个名称,并将其作为意图传递到主页 我希望用户在第一次使用该应用程序时就被带到欢迎页面,然后一直被带到主页 我正在将名称保存为共享首选项,因此它应该始终存在 因此,我尝试始终将用户发送到主页,但如果不存在任何意图(即第一次),他们将被带到主页,但我无法使其工作。这是我的努力 public class HomeActivity extends Activity { @Override protec
public class HomeActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
Intent intent1 = getIntent();
Bundle bundle = intent1.getExtras();
if( intent1.getExtras() == null)
{
Intent intent = new Intent(HomeActivity.this,Welcome.class);
startActivity(intent);
}
final String name = bundle.getString("Name");
final int targetTime = bundle.getInt("targetTime", 1);
在
WelcomeActivity
的onCreate
中,检查SharedReferance
的内容是否为空或是否设置为某个值,如果为空,请停留在WelcomeActivity
上,否则开始活动(用于您的主页)
。并使WelcomeActivity
成为AndroidMenifest.xml中的启动器
在Welcome.java的onCreate中执行此操作
SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
String name = mPrefs.getString("Name", null);
if (name != null) {
Intent intent = new Intent(Welcome.this,HomeActivity.class);
startActivity(intent);
}
当您移动到HomeActivity
时,将名称保存在共享首选项中,如下所示
SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("name", name);
editor.commit();
在欢迎活动的onCreate()
中,检查共享首选项中是否存在名称。如果没有,请继续活动。如果有name,您可以启动主页并finish()
欢迎活动
确保在开始主页活动后调用finish()
,否则当您按下主页中的后退按钮时,您将被重定向到欢迎页面
String login="";
Bundle extras=getIntent().getExtras();
if (extras!=null) {
login = getIntent().getStringExtra("login");
}if (login==null){
login="";
}
if(user==null && !login.equalsIgnoreCase("login")){
Intent contentIntent=new Intent(MainActivity.this,MarketActivity.class);
startActivity(contentIntent);
finish();
}