2014-09-30 75 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 
    //... 
} 
相關問題