手机卫士学习03- 弹出对话框的一些细节

本文详细阐述了AlertDialog的使用技巧,包括低版本与高版本对话框的兼容性,以及如何利用对话框焦点抢夺实现强制升级提示。此外,提供了对话框焦点管理的常用方式,确保用户体验的同时实现特定功能。
关于使用AlertDialog -弹出对话框使用的一些细节。

1    低版本和高版本对话框。当我们在activity清单文件使用NoTitleBar主题时,高版本会向下兼容,使用低版本的对话框
      如果想去掉TitleBar并且使用高版本对话框,我们可以将系统主题设置<item name="android:windowNoTitle">true</item>
      复制到Application节点的Theme主题--AppTheme里,这样整个应用都会使用NoTitleBar并且使用高版本的对话框。


<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

 <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
         <item name="android:windowNoTitle">true</item>
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>


2     对话框焦点的抢夺。当AlertDialog.Builder builder =new Builder();        builder.setCancelable(false);对话框抢到焦点
        之后当我们点击其他区域或者点击返回键将没有效果,对话框成功的抢到焦点。这种方式我们可以使用在:当我们的应用程序
        需要强制升级时,可以使用这种方式,当时用户的体验效果不是很好。

        对话框使用的 常用方式。
        当点击其他区域或者返回键,用户默认想法是取消这个对话框,所以需要让应用直接进入主页面。通过:
        builder.setOnCancelListener(new OnCancelListener(){
            public void onCancel(DialogInterface dialog){
            enterHome();//进入主页面
            dialog.dismiss();//取消对话框
}
}); 


 /**
  * 升级提示对话框
  */
 private void showUpdateDialog() {
  AlertDialog.Builder builder = new Builder(this);
  builder.setTitle("升级提示");
  builder.setMessage(description);
  //builder.setCancelable(false);//抢夺焦点,强制更新,不建议使用
  /**
   * 返回键,点击其他区域-进入主页
   */
  builder.setOnCancelListener(new OnCancelListener() {
   @Override
   public void onCancel(DialogInterface dialog) {
    enterHome();
    dialog.dismiss();
   }
  });


开机自动弹出对话框可能有多种原因,以下列举常见的情况及对应的解决办法和设置方法: ### 软件自启设置 很多软件在安装时会默认设置为开机自启,并且在开机时弹出一些提示对话框。要解决这个问题,可以通过以下方式禁止软件开机自启: - **Windows系统**:按下 `Win + R` 组合键,输入 `msconfig` 并回车,打开“系统配置”窗口。在“启动”选项卡中,取消勾选不需要开机启动的程序,然后点击“确定”保存设置。也可以在任务管理器的“启动”选项卡中,禁用不需要开机自启的程序。 - **Mac系统**:点击苹果菜单,选择“系统偏好设置”,然后点击“用户与群组”。选择当前用户,点击“登录项”,在列表中选择要禁止开机自启的程序,点击“ - ” 号将其移除。 ### 系统更新提示 操作系统的更新提示可能会在开机时弹出对话框。可以对系统更新设置进行调整: - **Windows系统**:按下 `Win + I` 组合键打开“设置”窗口,点击“更新和安全”。在“Windows 更新”选项中,可以选择更新的时间和方式,例如将更新设置为自动下载但不自动安装,或者关闭更新提示。 - **Mac系统**:点击苹果菜单,选择“系统偏好设置”,然后点击“软件更新”。可以选择自动更新或手动检查更新,取消勾选不需要的更新提醒选项。 ### 病毒或恶意软件 病毒或恶意软件可能会在开机时弹出广告或其他恶意对话框。可以使用杀毒软件进行全面扫描和清除: - **Windows系统**:可以使用系统自带的“Windows Defender” 或其他第三方杀毒软件,如 360 安全卫士、腾讯电脑管家等。打开杀毒软件,选择全面扫描,等待扫描完成后,按照提示清除发现的病毒和恶意软件。 - **Mac系统**:可以使用 Mac 系统自带的安全防护功能,也可以安装第三方杀毒软件,如 Norton、McAfee 等。运行杀毒软件进行扫描和清除操作。 ### 计划任务 系统或软件可能设置了计划任务,在开机时触发弹出对话框。可以检查并修改计划任务: - **Windows系统**:按下 `Win + R` 组合键,输入 `taskschd.msc` 并回车,打开“任务计划程序”。在左侧面板中,展开“任务计划程序库”,查看其中的任务列表。找到可能导致开机弹出对话框的任务,右键点击并选择“禁用”或“删除”。 - **Mac系统**:打开“系统偏好设置”,点击“节能器”,在“计划”选项中,检查是否有设置开机时执行的任务,如有需要可以进行修改或删除。 ### 注册表设置(仅适用于 Windows 系统) 某些软件可能会在注册表中添加开机自启的项,导致开机弹出对话框。可以通过修改注册表来解决: 按下 `Win + R` 组合键,输入 `regedit` 并回车,打开“注册表编辑器”。在注册表中,找到以下路径: `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run` `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run` 在这两个路径下,找到可能导致开机弹出对话框的程序项,右键点击并选择“删除”。 ### 设置开机自动弹出对话框的方法 如果需要设置开机自动弹出对话框,可以使用以下方法: - **Windows系统**:可以使用批处理文件来实现。打开记事本,输入以下代码: ```batch @echo off msg * "这是开机自动弹出对话框内容" ``` 将文件保存为 `.bat` 格式,例如 `popup.bat`。然后将该文件复制到以下路径: `C:\Users\你的用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup` 这样,每次开机时就会弹出指定内容的对话框- **Mac系统**:可以使用 AppleScript 来实现。打开“脚本编辑器”,输入以下代码: ```applescript display dialog "这是开机自动弹出对话框内容" ``` 将文件保存为应用程序格式,例如 `popup.app`。然后将该应用程序添加到“登录项”中,方法是点击苹果菜单,选择“系统偏好设置”,然后点击“用户与群组”。选择当前用户,点击“登录项”,点击“ + ” 号,选择保存的应用程序。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值