如何 运行 在后台连续编码 - Android
How to run code in the background continuously - Android
我在 android 中管理后台服务时遇到了一些困难。我有这段代码:
private boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected();
}
我想 运行 在后台执行此代码,但我不知道我能做什么。有些人告诉我使用服务,但我希望此代码仅在应用程序中 运行ning,而不是在应用程序关闭时。
我还需要上面的代码,在后台,当互联网不存在和存在时以吐司的形式提醒用户。
有人可以帮助我吗?提前致谢!
您应该使用广播接收器来监控操作系统在连接或断开互联网时的信息。
现在,当您获得有关互联网状态的信息时,您可以选择如何将该信息传递给您的视图(片段或 activity)。
我会推荐两种方法:
LiveData,这是 android 在视图 Here is the link.
中获取实时数据的最新方法
实现自己的侦听器Here is the tutorial。
像这样应该可以解决问题。
public class MyService extends Service
{
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
//Do something here...
//Check for the connections.
if(!isNetworkConnected) {
Toast.makeText(this, "No Internet Connection!", Toast.LENGTH_SHORT).show();
} else {
//Do something else...
}
//To stop this service. Call it here probably not a right choice. Just as reminder.
//stopSelfResult(startId);
return super.onStartCommand(intent, flags, startId);
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
private boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected();
}
}
我在 android 中管理后台服务时遇到了一些困难。我有这段代码:
private boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected();
}
我想 运行 在后台执行此代码,但我不知道我能做什么。有些人告诉我使用服务,但我希望此代码仅在应用程序中 运行ning,而不是在应用程序关闭时。
我还需要上面的代码,在后台,当互联网不存在和存在时以吐司的形式提醒用户。
有人可以帮助我吗?提前致谢!
您应该使用广播接收器来监控操作系统在连接或断开互联网时的信息。 现在,当您获得有关互联网状态的信息时,您可以选择如何将该信息传递给您的视图(片段或 activity)。
我会推荐两种方法:
LiveData,这是 android 在视图 Here is the link.
中获取实时数据的最新方法实现自己的侦听器Here is the tutorial。
像这样应该可以解决问题。
public class MyService extends Service
{
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
//Do something here...
//Check for the connections.
if(!isNetworkConnected) {
Toast.makeText(this, "No Internet Connection!", Toast.LENGTH_SHORT).show();
} else {
//Do something else...
}
//To stop this service. Call it here probably not a right choice. Just as reminder.
//stopSelfResult(startId);
return super.onStartCommand(intent, flags, startId);
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
private boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected();
}
}