2014-09-30 76 views
0

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

+0

保存在sharedprefrence..you数据可以从任何活动访问它..如果你可以保存它.. – Meenal 2014-09-30 04:26:08

+0

但没有更新我的活动2.我想要的数据。我的活动不会被刷新,因此共享偏好不是一个选项。 – 2014-09-30 04:27:40

+0

然后使用一些东西来更新它在后台.. – Meenal 2014-09-30 04:29:23

回答

1

您可以使用处理程序将数据发送到其他活动。 第1步:

//-- Create Handler in destination activity. 

public static Handler handler; 

handler=new Handler(new Handler.Callback() { 

    @Override 
    public boolean handleMessage(Message msg) { 
     // TODO Auto-generated method stub 

     //-- retreiving data 
     String data=msg.obj.toString(); 
     int i=msg.arg1; 

     return false; 
    } 
}); 

第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. 
+0

我怀疑它是否由于静态处理程序而泄漏内存。 – 2014-09-30 04:47:11

0

你可以简单地使用回调和辛格尔顿,这个想法是这样的:

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 
    //... 
} 
相关问题