嗨,我是 android 编程新手,我在应用程序初始化时遇到了一些问题。我将先解释应用程序结构,然后再解释问题。
应用程序有一个线程,该线程应始终在数据报套接字上运行和侦听。每当收到消息时,它都会采取适当的措施。在某些操作上,我需要Context对象,并且我还使用Handler对象将数据传递给 UI 线程。这两个对象都是在我的 Thread 类的构造函数中通过从主要活动的OnCreate方法传递来初始化的。现在我遇到的问题是,每当我的活动被切换或倾斜手机时,主活动中的所有对象都会重新创建,并且我之前传递给Handler和Context的线程类的引用变得无效。
我应该如何处理这个问题。提前致谢。应用结构是这样的。
public class MainActivity extends Activity {
private Context ctx;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
Bundle bundle = msg.getData();
String mtype = bundle.getString("mtype");
// DO SOME STUFF HERE //
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// OTHER INITIALIZATIONS //
ctx = this;
rxThread = new ControlReceiver(ctx, handler);
rxThread.start();
}
};
线程类是这样的。
public class ControlReceiver extends Thread {
private Context context;
private Handler handler;
ControlReceiver(Context c, Handler h){
context = c;
handler = h;
}
public void run() {
// DO STUFF HERE //
// SEND MESSAGE TO UI //
msg = handler.obtainMessage();
bundle = new Bundle();
bundle.putString("mtype", "ECHTB");
msg.setData(bundle);
handler.sendMessage(msg);
}
};