在android中保存活动

时间:2014-06-04 15:17:52

标签: android sqlite android-fragmentactivity loader

我的应用程序设计是这样的,我有一个sqlite数据库,以及一个在Loader的帮助下从数据库呈现数据的片段。

要启动我的应用程序,在活动A中,我将首先显示欢迎屏幕,验证用户,在活动A实例的帮助下初始化数据库然后我完成它。我将完成()此活动,因为从活动B开始,如果用户按下后退按钮,它应该自己结束。

稍后我将转到第二个屏幕,即活动B.这里我将在加载程序(cwac by commonsware)&帮助下加载数据。显示内容。

如果用户按下主页按钮,并在一段时间后恢复。我的应用程序崩溃,但崩溃日志只是说

06-04 20:39:52.569: W/dalvikvm(18544): threadid=11: thread exiting with uncaught exception (group=0x40c68a68)
06-04 20:39:52.569: W/dalvikvm(18544): threadid=12: thread exiting with uncaught exception (group=0x40c68a68)

检查我是否输入了日志消息&我知道数据库处理程序是NULL和&偶数活动对象也是NULL。这是因为在启动活动B时,我将完成A活动。

要测试,我刚刚删除了活动A中的finish(),我的应用程序仍然崩溃了。只是它说未处理的例外。 DB对象是NULL&活动对象也是..

注意:即使我删除了活动A上的finish(),也只调查活动B调用的实例,但不是A 如何处理这些场景。?

1 个答案:

答案 0 :(得分:2)

  

如果用户按下主页按钮,并在一段时间后恢复。我的应用程序崩溃,但崩溃日志只是说

应该有一个与错误相关联的Java堆栈跟踪,而不仅仅是一些警告。

  

知道数据库处理程序是否为NULL

我假设“DB处理程序”是一个单例。这表示您的进程在后台处理时已终止。这对于Android来说是完全正常的行为。

  

偶数活动对象也是NULL

不应该 “活动A对象”。不要将Activity放在静态数据成员中。

  

如何处理这些情况。?

了解您的流程可以随时因任何原因终止。如果用户通过启动器图标以外的其他内容(例如,通过最近任务列表)返回到您的应用,Android将尝试将用户返回到用户在您的应用程序中的位置。这意味着不一定要创建活动A.你需要处理这种情况。