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