broadcastreceiver中显示dialog以及重启当前activity

来源:互联网 发布:javascript教程廖雪峰 编辑:程序博客网 时间:2024/06/14 02:41

1,今天在广播接器里写了个dialog ,结果怎么都显示不出来。啥requestFeature() must be called before adding content,啥玩意 除了坑爹想不出别的了,"

alertDialog.getWindow().setContentView(layout);//关键位置 "竟然要“alertDialog.show();”完了才能设置,醉醉的了。

AlertDialog alertDialog;void showMsgDia(final Context context){AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);alertDialog = dialogBuilder.create();LayoutInflater inflaterDl = LayoutInflater.from(context);RelativeLayout layout = (RelativeLayout) inflaterDl.inflate(R.layout.dialog_update, null);alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);alertDialog.show();//关键位置alertDialog.getWindow().setContentView(layout);//关键位置// 取消按钮Button btnCancel = (Button) layout.findViewById(R.id.btn_cancle);btnCancel.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v){alertDialog.dismiss();Toast.makeText(context, R.string.dialog_cancle_msg, Toast.LENGTH_SHORT).show();}});// 确定按钮Button btnOK = (Button) layout.findViewById(R.id.btn_update);btnOK.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v){                                //重启当前activity,因为activity的更新逻辑太复杂了,所以就直接重启了,然后就出现两个task,返回两次才能出来,于是乎就网上搜啊,                                //基本说的差不多但是一般都解决不了问题,然后就瞎试,如下,再给activity设个启动模式android:launchMode="singleTop"就ok了。                               context.startActivity(new Intent(context, MainActivity.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK));// 跳转立马更新alertDialog.dismiss();}});}


0 0
原创粉丝点击