这个问题可能是由于Service在开发时受到了Android Studio的限制,而在离线情况下则无法正常运行。一种解决方法是使用startService(),这可以使Service在后台连续运行而不受限制,即使应用程序已经退出或设备已经重新启动。以下是一段使用startService()方法启动Service的示例代码:
public class MyService extends Service {
private static final String TAG = "MyService";
private Handler mHandler;
@Override
public void onCreate() {
super.onCreate();
mHandler = new Handler();
startForeground(123, new Notification());
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
mHandler.postDelayed(mTask, 5000);
}
private Runnable mTask = new Runnable() {
@Override
public void run() {
Log.d(TAG, "Service is still running!");
mHandler.postDelayed(this, 5000);
}
};
@Override
public IBinder onBind(Intent arg0) {
return null;
}
}
在AndroidManifest.xml文件中添加以下代码来启动Service:
然后在活动中使用以下方法来启动Service:
Intent serviceIntent = new Intent(this, MyService.class);
startService(serviceIntent);