在我的项目中,我的静态成员为User.current
。
如果我在后台终止运行该应用程序,则User.current
将为null。我从启动屏幕上的服务器获取用户。
运行终止的应用程序时,我想启动启动画面。
我该如何解决这个问题?
答案 0 :(得分:0)
如果调用服务器,则可能使用了异步任务。在异步任务
中...
@Override
protected Boolean doInBackground(Void... params) {
...
value = jsonObj.getString("value");
return true;
}
protected void onPostExecute(Boolean iHaveValue) {
if(iHaveValue){
// use case 1 or 2
// 1
Intent i = new Intent(getApplicationContext(), MainActivity.class);
i.putExtra("value", value);
startActivity(i);
// 2
SharedPreferences sharedpreferences = getSharedPreferences("user", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString("value", value);
editor.commit();
Intent i = new Intent(getApplicationContext(), MainActivity.class);
startActivity(i);
}
}
您将用户带到doInBackground(Void ... params)上。在onPostExecute(Boolean iHaveValue)方法中,您只需转到MainActivity。 您可以使用意图将值放在MainActivity上并接收(1)或使用共享首选项(2)
(1)
在SplashScreen中
Intent i = new Intent(getApplicationContext(), MainActivity.class);
i.putExtra("value", value);
startActivity(i);
在MainActivity中
Intent editIntent = new Intent(getApplicationContext(), Splashscreen.class);
(2)
在SplashScreen中
SharedPreferences sharedpreferences = getSharedPreferences("user", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString("value", value);
editor.commit();
在MainActivity中
SharedPreferences prefs = getSharedPreferences("user", MODE_PRIVATE);
value = prefs.getString("value", "null");
如果需要在多个位置使用此值,则sharedPreferences会很有帮助(情况2)。如果没有,请使用putExtra将信息发送到MainActivity(案例1)。