Android 尽可能长时间地将数据保存在内存中

Android 尽可能长时间地将数据保存在内存中,android,android-intent,Android,Android Intent,我为Android创建了一个密码管理器(请参阅),它有一个深受许多用户喜爱的功能:“快速解锁”。密码数据库通常使用强密码和长密码进行加密,但当解锁数据库一次时,应用程序将尽可能长时间保持活动状态(使用带有持续通知的服务)。因此,如果用户想要访问下一个密码,只需输入密码的一小部分就足够了。这是可能的,因为数据库(包括主密码)仍在内存中。(如果手机被盗,“攻击者”只有一次机会猜测短密码。在此之后,数据库将被完全锁定。) 这有两个主要缺点: 该应用程序需要相当多的内存,因为它基于Android的Mo

我为Android创建了一个密码管理器(请参阅),它有一个深受许多用户喜爱的功能:“快速解锁”。密码数据库通常使用强密码和长密码进行加密,但当解锁数据库一次时,应用程序将尽可能长时间保持活动状态(使用带有持续通知的服务)。因此,如果用户想要访问下一个密码,只需输入密码的一小部分就足够了。这是可能的,因为数据库(包括主密码)仍在内存中。(如果手机被盗,“攻击者”只有一次机会猜测短密码。在此之后,数据库将被完全锁定。)

这有两个主要缺点:

  • 该应用程序需要相当多的内存,因为它基于Android的Mono,并且附带了相对较大的库
  • 有时,尽管有持续的通知,应用程序仍会被终止,用户需要再次输入长主密码
现在,我正在寻找一种方法,使用户体验更好。我不认为将主密码或其部分存储在SD卡或内部持久内存中是一种选择。它应该只保留在RAM中

有没有办法在内存中保留(几个字节)数据,但仍然允许终止应用程序? 我在想在重新创建应用程序时可以传递给应用程序的某种意图?这怎么可能呢


谢谢你的提示

将你的应用程序移植到原生安卓系统会降低它被杀死的可能性。这不是问题的解决方案,但会降低问题的影响。@flx:你为什么这么说?较小的应用程序是否不太可能被杀死?有没有说明这一点的参考资料?当然有。当释放更多内存时,系统更有可能终止应用程序。你应该读一些关于安卓系统的东西。我应该读什么?我找不到任何正式支持你声明的东西。