如何在两个活动之间传输数据,没有实际转移到该活动?方案如下:
Activity
A是一个闪屏。在显示启动画面时,会在ArrayList
类型的背景中生成一些数据。加载此数据后,我需要启动Activity
B(比如说登录界面),就在此之前我需要将数据传输到Activity
C.我知道我可以使用{{1} }用于传输数据,但不会运行目标PutExtras
而只是发送数据?
谢谢
应用程序的完整流程如下:
Activity
A(启动画面) - > Activity
B(登录屏幕) - > Activity
D(某些用户界面和按钮) - > Activity
C(应该能够在某些Activity
按下时加载在初始屏幕中生成的数据的活动)。
答案 0 :(得分:2)
我认为你并不完全了解活动和应用的生命周期。
经验法则,总是只有一个活动(这是当你回到它时每个活动必须重新创建的最糟糕的情况)。你不能做像开始活动但没有显示它或类似的事情。
如果您要执行下载数据这样的昂贵任务,请在AsyncTask中执行此操作
位置您可以存储此已加载的数据,以便以后可以轻松访问任何活动database with help of Loaders(加载程序是可选的但非常好)或SharedPreferences.
答案 1 :(得分:0)
如果要将数据传递给正在运行的活动而不启动该活动的新实例,则只需在意图上设置标记即可。例如:
Intent i = new Intent()
i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
如果活动已经在堆栈顶部运行,将不会重新启动活动。如果您要做的只是将数据提供给活动C,而活动C在没有再次启动的情况下运行,您可以尝试使用此标记或其他标记。有一堆他们。只需查看the list,看看是否符合您的需求。