我必须像 spotify 一样开始,如果用户未登录,将显示一个屏幕,如果登录,则显示另一个屏幕,任何人都可以提供帮助吗?,谢谢。
最佳答案
试试这个代码,它可能对你有帮助。
public class SplashActivity extends Activity {
boolean isUserLoggedIn = true;
// User Session Manager Class
UserSessionManager session;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
session = new UserSessionManager(getApplicationContext());
isUserLoggedIn = session.isUserLoggedIn();
if(isUserLoggedIn)
{
Intent intent = new Intent(SplashActivity.this,FirstActivity.class);
startActivity(intent);
SplashActivity.this.finish();
}
else
{
setContentView(R.layout.splash_layout);
Thread timer = new Thread(){
public void run() {
try
{
sleep(3000);
}catch(InterruptedException e) { }
finally
{
Intent intent = new Intent(SplashActivity.this,SecondActivity.class);
startActivity(intent);
SplashActivity.this.finish();
}
}
};
timer.start();
}
}}
UserSessionManager 类:-
public class UserSessionManager
{
public static final String KEY_EMAIL = "email";
public static final String KEY_NAME = "name";
int PRIVATE_MODE = 0;
Context _context;
SharedPreferences.Editor editor;
SharedPreferences pref;
public UserSessionManager(Context paramContext)
{
this._context = paramContext;
this.pref = this._context.getSharedPreferences("AndroidPref", this.PRIVATE_MODE);
this.editor = this.pref.edit();
}
public void createUserLoginSession(String paramString1, String paramString2)
{
this.editor.putBoolean("IsUserLoggedIn", true);
this.editor.putString("name", paramString1);
this.editor.putString("email", paramString2);
this.editor.commit();
}
public HashMap<String, String> getUserDetails()
{
HashMap<String, String> localHashMap = new HashMap<String, String>();
localHashMap.put("name", this.pref.getString("name", null));
localHashMap.put("email", this.pref.getString("email", null));
return localHashMap;
}
public boolean isUserLoggedIn()
{
return this.pref.getBoolean("IsUserLoggedIn", false);
}
public void logoutUser()
{
}}
您可以使用 createUserLoginSession 方法设置登录详细信息。
如果您不想使用启动等待。 只需删除 SplashActivity 类中的 setContentView 方法和 Thread。
关于Android:根据用户是否登录更改 Activity 启动我的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27752057/