什么是主机活动未激活时处理数据的最佳方法

时间:2015-02-16 06:44:28

标签: android view background-process

我有四个活动Activity1,Activity2,Activity3,Activity4。 Activity2有一些操作,我们需要与服务器通信,这意味着我们将发送一些请求,并根据请求响应将来。

  1. 我点击了按钮,它将与Activity2中的服务器进行通信。
  2. 现在我转到了Activity3和Activity4。
  3. 服务器和客户端(Android设备)之间的通信仍在进行后台处理。
  4. 当我在Activity4时,则Activity2后台进程完成。
  5. 现在我从Activity4回到Activity3和Activity2。
  6. 现在我想,响应应该出现在Activity2的后台进程中。
  7. 这种用例应该采用什么方法。?

3 个答案:

答案 0 :(得分:1)

在Activity2 On按钮上单击:

1)使用AsynchTask获取数据。

2)使用startActivityForResult启动activity3。

3)和onActivityResult您可以查看结果

答案 1 :(得分:0)

您可以使用Service创建它,当您单击按钮时,您启动Intent到服务以启动后台任务,此时您的应用程序和网络任务异步运行,您可以移动到在Activity 2的onResume方法中,您可以使用Intent询问服务的状态,如果任务完成正常,您可以检索启动Intent的服务的响应并将其缓存到onNewIntent方法的活动2。在服务中,您需要一个地方来保存任务的响应,您可以选择如何执行(SQLite,SharedPreferences,Files等)并仅检索响应。您只需要在处理服务中的请求的逻辑中思考,存储并检索对应用程序的响应。

答案 2 :(得分:0)

嗯我的猜测,我可以告诉你如何处理它,

1)在活动2 use seperate thread apart from UIThread中进行服务器操作时,一旦启动,并行线程将花费自己的时间,并在服务器进程过后使用任何3 storage modes(sdcard,sqlite,sharedpref)存储您的数据,

2)您可能知道,一旦您的活动3开始,活动2将是paused(onPause),然后stopped (onStop)并且将在您的堆叠中保持活动状态,

3)一旦你从活动3回来,使用onResume收回保存的数据并使用它......