我的android应用在后台处于运行状态时被Android OS杀死。因此,当它重新启动时,它是一个空白屏幕,因为在OS杀死进程时所有数据都被清除了。 m不在SQLite或sharedpreference中存储任何数据。甚至在应用程序被杀死后,用数据显示UI组件的最佳方法是什么?(不幸的是,由于敏感数据/按要求,无法实现SQLite)。
1,无论何时在基本活动oncreate方法中发生这种情况,我都在oncreate方法中接收到saveInstanceState。所以我只是从那里调用启动器方法,应用程序按预期运行。但这是完美的实现方式吗?。
答案 0 :(得分:1)
如果我理解正确,那么在保存简单状态并从中恢复之前,savedInstanceState
应该是正确的。
static final String STATE_SCORE = "playerScore";
static final String STATE_LEVEL = "playerLevel";
// ...
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// Save the user's current game state
savedInstanceState.putInt(STATE_SCORE, mCurrentScore);
savedInstanceState.putInt(STATE_LEVEL, mCurrentLevel);
// Always call the superclass so it can save the view hierarchy state
super.onSaveInstanceState(savedInstanceState);
}
然后在应用程序被终止并重新启动时:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // Always call the superclass first
// Check whether we're recreating a previously destroyed instance
if (savedInstanceState != null) {
// Restore value of members from saved state
mCurrentScore = savedInstanceState.getInt(STATE_SCORE);
mCurrentLevel = savedInstanceState.getInt(STATE_LEVEL);
} else {
// Probably initialize members with default values for a new instance
}
// ...
}
有关更多详细信息,请参阅here。
答案 1 :(得分:0)
与此同时,服务器端会话很可能已经过期。
onPause()
上注销用户,然后在onResume()
上再次登录。service
使服务器端会话保持活动状态。