多个MainActivities从Android中的startActivityForResult()开始

时间:2012-10-31 06:16:55

标签: java android

人,
我已经在原生Android应用程序上工作了一段时间,现在我已经到了最后仍然有一个问题我需要帮助。
My project at github
存在以下问题 - 当用户第一次启动应用程序时,应用程序将询问他“您的饮食周期何时开始?”使用日期选择器弹出窗口。我使用 SharedPreferences 来存储用户从弹出窗口中选取的结果。我从 MainActivity 中分离了 DatePickerActivity ,它负责处理这个以 startActivityForResult()开头的日期选择器。 DatePickerActivity 使用意图将结果传递给 MainActivity
当我调试应用程序时,我看到完成() DatePickerActivity 启动两次, MainActivity 启动多次这导致datepicker弹出窗口再次表演。
一旦在系统中设置了开始日期,这些活动就没有问题,应用程序也能正常工作 然后是用户想要重置日期的时刻 - 使用带有“Изчисти”等文本的篮子图标,再次出现两次日期选择器。

我希望我对我的解释已经足够清楚了,我正在寻找你的听证会 最诚挚的问候,
米哈伊尔

1 个答案:

答案 0 :(得分:0)

我设法找到解决问题的方法。我猜我是因为我需要在用户从选择器中选择一个日期后重新绘制我的主要布局

finish();
startActivity(getIntent());

这应该是应用程序中多个MainActivity实例的原因。我第二件事就是将SharedPreferences提交给操作系统是异步的,当我检查选定的日期时,它还没有被写入。
我通过在静态实例中保存选中日期来解决问题,当我重绘主布局时,我已经得到了结果 感谢那些失去一些时间来解决我的问题的人!