当前位置: 首页 > 知识库问答 >
问题:

Android:互联网连接时在后台运行

凌朗
2023-03-14

大家好,我有一个简单的问题,如何在后台连续运行android中的一些代码块,

情况是检查互联网是否连接,相应地,它会将文件上传到服务器上。(这将在后台连续运行。)

我得到了类似BroadcastReceiver的东西,但我认为这只是为了检查互联网连接。

如果有人给块代码,让我明白,会有很大帮助...

谢谢

共有1个答案

符国安
2023-03-14

我给你举个例子

您可以通过此轻松检查您的连接

创建NetworkUtils类:

public class NetworkUtil {
    public static final int NOT_CONNECTED = 0;
    public static final int WIFI = 1;
    public static final int MOBILE = 2;
    public static int getConnectionStatus(Context context){
        ConnectivityManager connectivityManager =
                (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();

        if(networkInfo != null){
            if(networkInfo.getType() == ConnectivityManager.TYPE_WIFI){
                return WIFI;
            }
            if(networkInfo.getType() == ConnectivityManager.TYPE_MOBILE){
                return MOBILE;
            }
        }
        return NOT_CONNECTED;
    }
}

创建NetworkConnectivityCheck类:

public class NetworkConnectivityCheck {
    public boolean internetAvailable = false;
    private BroadcastReceiver networkChangeReceiver;

    NetworkConnectivityCheck(){

        this.networkChangeReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                int networkState = NetworkUtil.getConnectionStatus(context);
                if(networkState == NetworkUtil.NOT_CONNECTED){
                    internetAvailable = false;
                    MainActivity.tvStatus.setText("OFFLINE");

                } else if(networkState == NetworkUtil.MOBILE){
                    internetAvailable = true;
                    MainActivity.tvStatus.setText("ONLINE"); // you do something here.
                } else if(networkState == NetworkUtil.WIFI){
                    internetAvailable = true;
                    MainActivity.tvStatus.setText("ONLINE"); // you do something here
                }
            }
        };
    }



    public void register(Context context){
        context.registerReceiver(networkChangeReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
    }
    public void unregister(Context context){
        context.unregisterReceiver(networkChangeReceiver);
    }
}

主要活动:

public class MainActivity extends AppCompatActivity {
    private NetworkConnectivityCheck networkConnectivityCheck;

    public static TextView tvStatus;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tvStatus = (TextView)findViewById(R.id.tvStatus);

        networkConnectivityCheck = new NetworkConnectivityCheck();
        networkConnectivityCheck.register(this);
    }

    @Override
    protected void onResume() {
        super.onResume();
        networkConnectivityCheck.register(this);
    }

    @Override
    protected void onPause() {
        super.onPause();
        networkConnectivityCheck.unregister(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        networkConnectivityCheck.unregister(this);
    }
}
 类似资料:
  • 你好,我有一个应用程序,有两个活动:主页面和详细页面。 当有互联网连接时,用户可以从主页面导航到详细信息页面。当没有网络连接时,他不能这样做。 问题是:当我进入详细信息页面并关闭wifi时,我想完成此活动,我如何实现此功能?我在主要活动类中检查过类似这样的内容: 当我启动有互联网或没有互联网的应用程序时,它都可以正常工作,但是当我在运行时关闭wifi时,它不起作用。 无论如何,谢谢你!

  • 启动画面活动.java 即使在这之后,我也没有收到吐司消息,互联网连接已关闭。我不明白出了什么问题。请帮我解决它。我没有收到任何错误,但是没有互联网连接,该应用程序正在运行并显示主要活动。当我单击保存按钮时,不幸的是它停止了。

  • 若要使用PS Vita与互联网连接,需先准备无线通信的环境。 若您的住家等地无法通过无线通信,可使用公众无线LAN服务(Hotspot)在公众场所与互联网连接。 公众无线LAN服务的使用方法与费用会因该服务的提供者而异。详细请询问该服务的提供者。 使用Wi-Fi连接 若要使用Wi-Fi与互联网连接,需准备以下内容。此外,接入点的设定通常会通过电脑进行。 与网络服务商签订合约 接入点或无线路由器 接

  • 可确认目前连接的接入点信息或网络的连接状态。

  • 进行与互联网间的连接测试,并显示结果。 名称* 目前使用的互联网连接之连接名称 SSID* 接入点的SSID 获取IP地址 显示是否可获取IP地址 互联网连接 显示是否可与互联网连接 登陆PlayStation®Network 显示是否能登陆PlayStation®Network NAT类型 显示PS Vita与互联网的连接方式 使用游戏的通信功能等时,可确认与其它PS Vita间的连接稳定性。

  • 问题内容: 我已经有了这段侦听连接性更改的代码- 我使用此代码检查连接- 但是问题是,如果网络突然失去了互联网连接而没有任何连接更改,则此代码将无用。有什么方法可以创建广播接收器侦听器以更改Internet连接吗?我有一个Web应用程序,突然的Internet连接更改会引起问题。 问题答案: 尝试这个 对于广播接收器 不要忘记将其放入你的AndroidManifest.xml 希望这会为你加油!