如何关闭android活动中的警报?

Posted

技术标签:

【中文标题】如何关闭android活动中的警报?【英文标题】:How to close alerts in android activity? 【发布时间】:2013-12-25 12:47:24 【问题描述】:

我正在尝试检查活动中的互联网连接。当没有互联网连接时,我正在使用警报打开 Wi-Fi

我不知道该怎么办。我的程序发出 5 个或更多警报。 我可以做些什么来改变它?

【问题讨论】:

如果您的问题是您的代码产生了太多警报,请向我们展示该代码。 【参考方案1】:

要检查 Internet 连接,以下方法会有所帮助。当没有互联网连接来激活 Wifi 连接时,将在 if 循环中调用警报对话框。

public static void checkTheNetworkAvailability(Context con) 
        Context mycontext = con;
        ConnectivityManager myconnectivity = (ConnectivityManager) mycontext
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (myconnectivity == null) 
            return false;
            // failed null!..
                    //show the alert box here for WiFi enabling
                    alert.show();
         else 
            NetworkInfo[] myinfo = myconnectivity.getAllNetworkInfo();
            if (myinfo != null) 
                for (int i = 0; i < myinfo.length; i++) 
                    if (myinfo[i].getState() == NetworkInfo.State.CONNECTED) 
                        return true;
                    
                
            
        
        return false;
    

警报对话框如下

wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("Message")
        .setTitle("Title")
        .setCancelable(true);
        builder.setPositiveButton("Wifi On", new DialogInterface.OnClickListener() 
                    public void onClick(DialogInterface dialog, int id) 


                        wifiManager.setWifiEnabled(true);

                    
                );
        builder.setNegativeButton("Wifi Off", new DialogInterface.OnClickListener() 
            public void onClick(DialogInterface dialog, int id) 
                wifiManager.setWifiEnabled(false);
            
        );

        AlertDialog alert = builder.create();

并在 Manifest 文件中添加以下权限

 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

【讨论】:

【参考方案2】:

重复使用相同的AlertDialog,而不是在每次应用出现连接问题时都创建一个新的。您可以使用isShowing() 方法检查AlertDialog 是否正在显示,因此您无需再次显示。

【讨论】:

以上是关于如何关闭android活动中的警报?的主要内容,如果未能解决你的问题,请参考以下文章

停止闹钟在另一个活动中响起 - android

如何在 Android 的非活动类中编写自定义警报?

Android AlarmManager 在每个活动上触发

如何关闭活动并返回到android中的上一个活动

如何保护android中的活动[关闭]

如何在 Android 上实现通过另一个屏幕上的操作关闭的警报?