最近在写Android代码,刚入门,遇到一个很奇怪的问题,还请各位大神指点。
大体是这样,在一个监听类里,要监听各种presence,然后根据不同的presence进行不同的处理
现在遇到一个问题就是,当代码运行到显示一个AlertDialog.Builder的时候,就显示不出来了,而且是停在了显示的代码处。
代码如下:(处理过程我就省略了)
private void InitiatePresenceListen()
{
? ?? ???presence_filter = new AndFilter(new PacketTypeFilter(Presence.class));??
? ?? ???presence_listener = new PacketListener()
?? ?? ???{??
? ?? ?? ?? ?
@Override??
? ?? ?? ?? ?public void processPacket(Packet packet)
?? ?? ?? ?? ?{??
? ?? ?? ?? ?? ? Log.i("--Presence--", "收到一个presence");? ?? ?? ?
?? ?? ?? ?? ?? ? if (packet instanceof Presence)
? ?? ?? ?? ?? ? {??
? ?? ?? ?? ?? ?? ???Presence presence = (Presence) packet;? ?
? ?? ?? ?? ?? ?? ???from = presence.getFrom().split("\\@")[0];
??
? ?? ?? ?? ?? ?? ???to = presence.getTo().split("\\@")[0];
? ?? ?? ?? ?? ?
?Log.v("--Presence--:","监听到一个packet:"+from +"发给"+to+" state:"+presence.getType()+"~~");
? ?? ?? ?? ?? ?
?/***依次处理Presence.Type中的7种状态 ***/
?? ?? ?? ?? ?? ?
?? ?? ?? ?? ?? ?? ???if (presence.getType().toString().trim().equals("subscribe"))
?? ?? ?? ?? ?? ?? ???{? ?? ?? ?? ?? ?? ?
?? ?? ?? ?? ?? ?
? ?? ?? ?? ?? ?? ???
Log.v("--Presence--:","接受到"+from+"的添加好友申请");
? ?? ?? ?? ?? ?? ???
//getApplicationContext()!!!!!!!!!!!!!!!!!!!!!!!
? ?? ???
AlertDialog.Builder builder = new AlertDialog.Builder(MainClient.this);? ?? ?
?? ?? ???
builder
? ?? ???
.setTitle("好友添加提示:")
? ?? ???
.setCancelable(false)
? ?? ???
.setMessage(from+"想要添加您为好友,您是否接受?")
? ?? ???
.setPositiveButton("接受",
? ?? ???
new DialogInterface.OnClickListener()
? ?? ???
{
public void onClick(DialogInterface dialog, int id)
?{
//此处省略几十行
dialog.dismiss();
}
})
.setNegativeButton("拒绝",
new DialogInterface.OnClickListener()
?{
public void onClick(DialogInterface dialog, int id)
?{
//此处省略几十行
dialog.dismiss();
}
});
? ?? ???
builder.create();
? ?? ???
builder.show();
//就是这个地方没显示出来!!
? ?? ???
? ?? ?? ?? ?? ?? ???}
? ?? ?? ?? ?? ?? ???else if (presence.getType().toString().trim().equals("subscribed"))
? ?? ?? ?? ?? ?? ???{
? ?? ?? ?? ?? ?? ???}
?? ?? ?? ?? ?? ?? ???else if (presence.getType().toString().trim().equals("unsubscribed"))
?? ?? ?? ?? ?? ?? ???{
? ?? ?? ?? ?? ?? ???}
?? ?? ?? ?? ?? ?? ???else if (presence.getType().toString().trim().equals("unsubscribe"))??
? ?? ?? ?? ?? ?? ???{
? ?? ?? ?? ?? ?? ???}
?? ?? ?? ?? ?? ?? ???else if (presence.getType().toString().trim().equals("unavailable"))
?? ?? ?? ?? ?? ?? ???{
? ?? ?? ?? ?? ?? ???}
? ?? ?? ?? ?? ?? ???else
? ?? ?? ?? ?? ?? ???{
? ?? ?? ?? ?? ?? ???}??
? ?? ?? ?? ?? ? }??
? ?? ?? ?? ?}??
? ?? ???};??
? ?? ???ClientConServer.getConnection().addPacketListener(presence_listener, presence_filter);
}
就是那个builder无法显示,望各位大神帮忙解决。