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

Android,access a reference from another activity

很好的一天,

我的主要活动是用一个物体,

1
public Network netConnection = null;

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

1
2
3
4
5
6
7
8
9
    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();

现在,我创建了一个新的活动,并用以下代码运行它:

1
2
3
4
5
6
7
case R.id.menu_packet: {
        Intent intent = new Intent(this, PacketActivity.class);
        String id ="" + hashCode();
        intent.putExtra("id", id);
        startActivity(intent);
        return true;
    }

我试过在意图等方面做一些事情,但我没有做对。

有没有一种简单的方法来传递对我的netconnection的packetActivity的引用?

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

谢谢


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

这里是教程有用链接:扩展应用程序扩展应用程序以全局共享变量Android扩展了应用程序基础

例如

1
2
3
4
5
6
7
8
9
10
public class myApplication extends Application{
    private myType myObj;

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

然后从你的主要活动:

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

第二次活动:

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

小心内存泄露。


这听起来像是服务的用例:

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

问题是,一旦创建网络对象的活动被破坏,例如启动新的活动,那么网络对象也将被垃圾收集,因此我认为传递引用不会有帮助…