broadcastreceiver中显示dialog以及重启当前activity
2016-08-02 18:40
218 查看
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(); } }); }
相关文章推荐
- 反射矩阵(reflection matrix)推导
- vim配色和终端的配色和Linux下中文输入法
- swift 字符串的截取和拼接
- Simbolic Link 软链接 (Windows Junction)
- AppleDoc 的使用
- android adb源码分析(5)
- 如何构建一只专业的前端开发团队(一)
- python 实现txt文件转txt文件 windows下
- 删除mysql表中记录
- qq第三方登录
- 性能测试java协议使用httpclient方法引发的思考
- SQLi Labs Lesson6
- Android的线程和线程池
- Leetcode 136. Single Number
- HDU 5783Divide the Sequence
- 大型网站技术架构:核心原理与案例分析—第四章:瞬时响应:网站的高性能架构
- 部署Swarm - Deploy Swarm
- 表达式树的解析.
- canvas.save()和canvas.restore()的区别
- 数据结构实验之栈四:括号匹配