将数据从活动发送回已经运行的活动

时间:2014-09-11 18:16:11

标签: android android-intent android-activity

我有一个活动Detail,可以通过List开始新活动Intent

List我做的事情然后我需要将一些数据传回Detail

在从List回电之前,堆栈应包含Detail(暂停时)和List(正在运行)。

我需要传回的数据是ArrayList<MyObject>,其中MyObject实现Parcelable(以及所有需要的方法),所以我可以使用

intent.putParcelableArrayListExtra("myList", myListOfParcelableObjects);

通过Intent发送数据。

现在问题出现在被叫活动Detail上。

我试图通过onNewIntent(Intent intent)onResume(..)方法捕获新意图,但第一个(甚至使用setIntent(intent))和第二个没有获得从List和意图中包含的数据。

如何在Detail中获取新意图,管理新数据并在调用Detail之前“恢复”List

2 个答案:

答案 0 :(得分:1)

创建一个Singleton Manager将数据保存在那里,并在需要时使用数据。

public class DataManager {

    private static DataManager instance = new DataManager();

    private int mData;
    private DataManager() {}

    public static DataManager getInstance() {
       return instance;
    }


    public void setData(int number) {
         mData = number;
     }
   public int getData() {
       return mData;
    }



}

活动A

DataManager manager = DataManager.getInstance();
manager.setData(1);

活动B

DataManaget manager = DataManager.getInstance();
int data = manager.getData();

这是一个例子。 希望它有所帮助。

答案 1 :(得分:0)

您可以使用Singleton类存储公共数据。希望它会有所帮助。