首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android应用程序长时间处于后台时会被杀死

Android应用程序长时间处于后台时会被杀死
EN

Stack Overflow用户
提问于 2018-12-21 11:48:47
回答 2查看 723关注 0票数 0

我的安卓应用程序正在被安卓操作系统杀死,当它在后台为sometime.So启动时,它是一个空屏幕,因为当操作系统杀死process.Unfortunately时,所有的数据都已经被擦除了,我没有在SQLite或共享首选项中存储任何数据。最好的方式是显示UI组件的数据,即使在应用程序被终止之后?(不幸的是,由于敏感数据/根据要求,无法实现SQLite )。

1,我观察到,每当在基本活动oncreate方法中发生这种情况时,我都会在oncreate方法中接收到savedInstanceState。因此,我只是从那里调用启动器方法,应用程序就像预期的那样工作。但这是完美的实现方式吗?

EN

回答 2

Stack Overflow用户

发布于 2018-12-21 12:33:58

如果我理解正确的话,关于保存简单状态和从简单状态恢复,您使用savedInstanceState应该是非常正确的。

代码语言:javascript
复制
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);
}

然后,当应用被终止并重新启动时:

代码语言:javascript
复制
@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
EN

Stack Overflow用户

发布于 2018-12-21 11:59:41

最有可能的是,服务器端会话在此期间已经过期。

  • 注销onPause()上的用户,然后再次登录onResume().
  • or使用service使服务器端会话保持活动状态。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53878928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档