0

再会,

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

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 对象吗?

谢谢

4

2 回答 2

1

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

这里有一个有用的教程
链接:
Extending Application
Extending Application to share variables global
Android extends Application basics

例如

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();

并小心内存泄漏..!

于 2013-03-14T11:16:18.103 回答
0

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

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

问题是一旦您创建网络对象的活动被销毁,例如启动新活动,那么网络对象也将被垃圾收集,所以我认为传递引用不会有帮助......

于 2013-03-14T11:17:56.273 回答