美好的一天,
我的主要活动是一个对象,
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对象?
谢谢
答案 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对象也将被垃圾收集,所以我不认为传递引用会有所帮助......