【发布时间】:2012-03-07 14:00:34
【问题描述】:
如果我有 A 类和 B 类,A 类作为一个菜单,有 2 个按钮,一个用于连接一个用于登录。当我按下连接时,我运行这个方法:
private void connect(){
Thread t1 = new Thread(){
public void run(){
connection_class = new ConnectionClass();
connection_class.run();
}
};t1.start();
}
在构造函数中调用我的 ConnectionClass:
public ConnectionClass(){
socket = new Socket("address", port);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
}
在连接到服务器并按下登录时效果很好(没有 onClick 的东西):
connection_class.MethodToWriteToServer("CommandThatLogsMeIn");
Intent i = new Intent().setClass(v.getContext(), Class.class);
startActivity(i);
这很好,但是当我在 B 类时,我想使用它的相同实例。我可以只创建一个新线程和该类的实例,但这会破坏开始菜单的目的并要求我再次登录。
是否有可能在启动时将实例作为参数传递给 Activity,或者 android 的做法是什么?
作为旁注,我真的不需要菜单,但我在作业到期之前有一些空闲时间,我想我不妨试试。
【问题讨论】:
-
从不同的地方使用相同的后台任务听起来像是使用服务的好地方:) 除此之外,您可以使用持有线程的单例。应该可以工作,因为默认情况下应用程序的所有活动都在同一个进程中。
-
是的,我想这会是我真的不知道如何使用服务,但我想我必须研究一下,哦,为什么不能像 C# 一样简单:p。
标签: android multithreading android-activity android-intent