我有一个带有关联网站的 Android 应用程序。我有一个 LoginActivity,它接受用户凭据,使用 AsyncTask 子类通过网站验证它们,如果正确将它们存储在 SharedPreferences 中以备将来使用。
我有一个 MainActivity,它根据这些 SharedPreferences 值显示用户详细信息。
因此,当 AsyncTask 完成时,我需要刷新 Main 活动中显示的用户详细信息。
我可以通过在调用它时将对 MainActivity 的引用传递给 LoginActivity 来做到这一点,然后在 AsyncTask onPostExecute 中,调用该 MainActivity 实例中的一个函数来刷新显示的数据。这似乎是一种常见的方式,但我不确定它是否完全安全。这不太可能,但是如果 MainActivity 在 AsyncTask 仍在处理时被操作系统终止会发生什么?
或者,在这种情况下,我可以在启动 LoginActivity 时完成() MainActivity,并从 onPostExecute 启动一个新的 MainActivity,它将显示刷新的数据。但是我可能还有其他活动,其中在后台 AsyncTask 刷新数据时正在进行用户交互 - 在这些情况下,第二种方法将不起作用。
只是想知道是否有更好的方法,还是第一种方法足够安全?