You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求实现无网络启动App时弹窗提示,点击确定关闭应用的方案

嘿,别担心,这个功能其实很好实现,我来给你一步步拆解解决方案,直接套进你的HomeActivity里就行:

第一步:添加网络访问权限

首先得在你的AndroidManifest.xml里添加网络状态访问权限,这样APP才能检测设备是否联网:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
第二步:编写网络检测工具方法

你可以直接在HomeActivity里写一个方法来判断当前网络是否可用:

// 检测网络是否可用的方法
private boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivityManager != null) {
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null && activeNetworkInfo.isConnected();
    }
    return false;
}

记得补充导入对应的包:

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import androidx.appcompat.app.AlertDialog; // 和你用的AppCompatActivity保持一致,若用support库则替换为android.support.v7.app.AlertDialog
第三步:在HomeActivity的onCreate中实现弹窗逻辑

把检测逻辑放在onCreate方法里,确保在setContentView之后执行,这样弹窗能正常显示:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home); // 你的布局文件

    // 先检测网络状态
    if (!isNetworkAvailable()) {
        // 弹出对话框
        new AlertDialog.Builder(this)
                .setTitle("无网络连接")
                .setMessage("当前设备未连接互联网,请检查网络设置后重试")
                .setCancelable(false) // 设置不能通过点击空白处关闭弹窗
                .setPositiveButton("确认", (dialog, which) -> {
                    // 点击确认后彻底关闭应用
                    finishAffinity(); // Android 10+推荐用这个关闭所有Activity栈
                    // 低版本可替换为finish(); 或 System.exit(0); 但finishAffinity更稳妥
                })
                .show();
    }

    // 你原来的其他代码,比如广告初始化等
    AdView adView = findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    adView.loadAd(adRequest);
}
小提示
  • 注意AlertDialog的导入包要和你的AppCompatActivity保持一致,避免出现兼容性问题。
  • finishAffinity()会关闭当前应用的所有Activity栈,比单纯的finish()更彻底,适合需要完全退出APP的场景。

这样修改后,当用户打开APP时,如果没联网就会弹出对话框,点击确认就直接关闭APP了~

内容的提问来源于stack exchange,提问作者Jhon Cates

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:23:14