在android中更新数据后,将数据发送到其他活动

在android中更新数据后,将数据发送到其他活动,android,android-layout,android-intent,android-activity,Android,Android Layout,Android Intent,Android Activity,我在android中有两个活动活动1和活动2。我想从活动1向活动2发送数据。当活动最小化时,我的活动1会随时更新。当活动1中的数据更新时,我想随时将更新的数据发送到另一个活动2。…您可以使用处理程序将数据发送到另一个活动。 步骤1: 步骤2: //-- Passing data from source activity. Message msg=new Message(); msg.arg1=10;//Pass int value msg.obj="Test Message";//Pass a

我在android中有两个活动活动1和活动2。我想从活动1向活动2发送数据。当活动最小化时,我的活动1会随时更新。当活动1中的数据更新时,我想随时将更新的数据发送到另一个活动2。…

您可以使用处理程序将数据发送到另一个活动。 步骤1:

步骤2:

//-- Passing data from source activity.

Message msg=new Message();
msg.arg1=10;//Pass int value
msg.obj="Test Message";//Pass any type of value
DestinationActivity.handler.sendMessage(msg);// DestinationActivity is your activity from u want to pass data.

您可以简单地使用回调和单例,其思想如下:

public class Mediator{

    static MyCallBack mCallBack;

    public static void setCallback(MyCallBack cb){
        mCallBack = cb;
    }

    public static void callCallBack(Object data){
        if(mCallBack != null){
            mCallBack.onUpdate(data);
        }
    }

    public static interface MyCallBack{
        public void onUpdate(Object data);
    }
}

first extends Activity{
    //methods and fields
    //...
    private void update(){
        //some logic...
        String someData = "The data";
        Mediator.callCallBack(someData);
    }
}

second extends Activity{

    public void onCreate(){
        //...
        Mediator.setCallback(new Mediator.MyCallBack(){
            public void onUpdate(Object data){
                //LOGIC WITH DATA HERE
            }
        });
    }
    //methods and fields
    //...
}

将该数据保存在SharedReference中..您可以从任何活动中访问..如果可以保存..但无需更新我的活动2。我想要数据。我的活动将不会刷新,因此共享首选项不是选项。然后在后台使用某些内容更新它。当活动最小化时,它如何知道数据已更新?我已在其中插入日志…我怀疑它是否由于静态处理程序而泄漏内存。
public class Mediator{

    static MyCallBack mCallBack;

    public static void setCallback(MyCallBack cb){
        mCallBack = cb;
    }

    public static void callCallBack(Object data){
        if(mCallBack != null){
            mCallBack.onUpdate(data);
        }
    }

    public static interface MyCallBack{
        public void onUpdate(Object data);
    }
}

first extends Activity{
    //methods and fields
    //...
    private void update(){
        //some logic...
        String someData = "The data";
        Mediator.callCallBack(someData);
    }
}

second extends Activity{

    public void onCreate(){
        //...
        Mediator.setCallback(new Mediator.MyCallBack(){
            public void onUpdate(Object data){
                //LOGIC WITH DATA HERE
            }
        });
    }
    //methods and fields
    //...
}