2011-09-29 27 views
0

我有三个活动A,B,和C.Android如何将First Activity的Handler数据转化为第三个活动?


我从活动A去 - >活动B - >活动Ç 现在当前活动C被显示和活动A是活动底堆栈 后来我提供一些投入到活动C到其另一个线程发送一些数据处理程序活动A的


现在我想接收数据上我的活动C.


可以有任何可能的解决方案吗? 我应该使用意向,如果是,那么你能给我适当的指导吗?

在此先感谢。

回答

1

如果数据仅用于决策目的,那么您可以使用staticSharedPreference并使用处理程序来通知数据已发生变化。

+0

如果我不想使用共享的偏好,然后和可变如何静态可以使用,因为我知道DONOT会在什么时候数据上firstactivity处理器赶到.. – Mak

+1

您需要设置活动C的处理程序通过setter和活动A,当您获取活动A的处理程序中的数据时,通知活动C通过它的处理程序..... –

1

通过意图传递数据作为额外。使用.putExtra,并从B传递给C.

+0

如果我已经在活动C上,那么如何将活动A的数据传递给活动(我知道如果我们从一个Activity启动Activity,那么我们可以通过StartActivity(Intent)传递intent,但是这里我们的Activity已经开始了。) – Mak

+0

误解了这个问题。 –

+1

您可以发送广播,但您可能不应该将旧执行的线程作为旧活动的成员运行。查看一个服务,然后绑定服务并在Activity A和C中设置一个监听器,或者发送特定事件的广播。 –

0

听起来好像你正试图将按摩从一个传递给另一个。你可以使用单例类来做到这一点。这里是一个骨架,您可以使用

// Singleton Class for message passing 
public class Messenger { 

    private static Messenger instance = new Messenger(); 

    public static Messenger get() { 
     return instance; 
    } 

    private String theMessage_; 

    // Default Constructor 
    private Messenger() { 
    } 


    // Setter to set the message you want to pass 
    public void setMessageToBePassed(String myMessage){ 
     theMessage_ = myMessage; 
    } 


    // Getter to get the message that is passed to you 
    public String getMessage(){ 
     return theMessage_; 
    } 

} 
相关问题