Android,从另一个活动访问引用

时间:2013-03-14 11:05:35

标签: android

美好的一天,

我的主要活动是一个对象,

public Network netConnection = null;

在我的主要活动中,我打电话:

    netConnection = new Network(new Network.OnMessageReceived() {
            @Override
            // here the messageReceived method is implemented
            public void messageReceived(String message) {
                // this method calls the onProgressUpdate
                publishProgress(message);
            }
        });
        netConnection.run();

现在我创建一个新活动,然后使用以下代码运行它:

case R.id.menu_packet: {
        Intent intent = new Intent(this, PacketActivity.class);
        String id = "" + hashCode();
        intent.putExtra("id", id);
        startActivity(intent);
        return true;
    }

我已尝试在意图等中做事with putExtra()但是我没有做对。

有没有简单的方法来传递对我的netConnection的PacketActivity的引用?

我不想复制它或任何东西。只是能够从PacketActivity访问netConnection对象?

谢谢

2 个答案:

答案 0 :(得分:1)

您可以扩展Application,在扩展应用程序中创建setter和getter方法,然后从新活动中调用它。

here教程
有用的链接:
Extending Application
Extending Application to share variables globally
Android extends Application basics

e.g。

public class myApplication extends Application{
    private myType myObj;

    public void set_myObj(myType theThing){
         myObj = theThing;
    }
    public myType get_myObj(){
         return myObj;
    }    
}

然后从你的主要活动:

((myApplication)getApplication()).set_myObj(myObj);

和第二项活动:

myType myObj = ((myApplication)getApplication()).get_myObj();

小心内存泄漏..!

答案 1 :(得分:0)

这听起来像服务的用例:

http://developer.android.com/reference/android/app/Service.html

事情是,一旦你创建网络对象的活动被破坏,例如为了启动新的Activity,Network对象也将被垃圾收集,所以我不认为传递引用会有所帮助......