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

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()
		{
			@Override
			public 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()
		{
			@Override
			public 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();
			}
		});
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值