大家好,我有一个简单的问题,如何在后台连续运行android中的一些代码块,
情况是检查互联网是否连接,相应地,它会将文件上传到服务器上。(这将在后台连续运行。)
我得到了类似BroadcastReceiver的东西,但我认为这只是为了检查互联网连接。
如果有人给块代码,让我明白,会有很大帮助...
谢谢
我给你举个例子
您可以通过此轻松检查您的连接
创建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 希望这会为你加油!