最近在写的程序需要Service和Activity通信,于是想到将MainActivity里面的dataHandler改为static,再在Service里面调用sendMessage()方法。但是handler改为static后,makeText()又报错了,查了一些解决方法都没什么用,请问这个要怎么改?谢谢!
代码:
public static Handler dataHandler = new Handler(){
public void handleMessage(android.os.Message msg) {
if (msg.what == 0) {
// 处理服务器返回的id,并分配给用户
try {
JSONObject jsonObject = new JSONObject(msg.obj.toString());
user.setId(jsonObject.getInt("id"));
Toast.makeText(MainActivity.this, "成功连接到服务器,id = " + user.getId(), Toast.LENGTH_SHORT).show();
} catch (JSONException e) {
// TODO Auto-generated catch block
Toast.makeText(MainActivity.this, "用户id读取错误!", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
...
}
MainActivity.this 报错:No enclosing instance of the type MainActivity is accessible in scope