0

伙计们,
我已经在原生 Android 应用程序上工作了一段时间,现在我已经结束了,但仍有一个问题需要帮助。
我在 github 的项目
有以下问题 - 当用户第一次启动应用程序时,应用程序会问他“你的饮食周期什么时候开始?” 带有日期选择器弹出窗口。我正在使用SharedPreferences来存储用户从弹出窗口中选择的结果。我将DatePickerActivityMainActivity分开,它负责处理我从startActivityForResult()开始的这个日期选择器。DatePickerActivity _ 使用Intent结果传递给MainActivity.
当我调试应用程序时,我看到DatePickerActivity中的finish()启动了两次,并且MainActivity启动了不止一个,这导致 datepicker 弹出窗口再次显示。 一旦在系统中设置了开始日期,这些活动就没有问题并且应用程序工作正常。 然后是用户想要重置日期的时刻 - 使用带有“Изчисти”之类的文本的篮子图标,并且日期选择器再次出现两次。

我希望我的解释已经足够清楚了,我期待你的听证会。
最好的问候,
米哈伊尔

4

1 回答 1

0

我设法找到解决我的问题的方法。我想是我造成的,因为在用户从选择器中选择日期之后我需要重绘我的主布局并且我这样做了

finish();
startActivity(getIntent());

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

于 2012-11-01T17:41:15.277 回答