创建即使应用程序被终止
后,这是服务,我想在后台创建即使应用程序被终止
public class CustomMyService extends Service {
public CustomMyService() {
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onTaskRemoved(Intent rootIntent) {
Intent intent = new Intent("com.android.ServiceStopped");
sendBroadcast(intent);
}
}
清单文件运行于运行Android应用程序服务
<service android:name=".CustomMyService">
<intent-filter android:priority="1000">
<action android:name="android.location.PROVIDERS_CHANGED"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</service>
敬请有人让我知道。我做了所有谷歌和YouTube的搜索,没有任何工作。
我使用红米注3,其中我有一个选项称为自动启动,如果我给这个应用程序的自动启动权限,服务在后台运行。
但是这个选项在许多其他的android智能手机中并不存在,所以应用程序终止时应用程序服务将被终止。
请让我知道服务如何运行,即使应用程序终止。
使用AlarmManager来唤醒您的服务时间。因为服务将在应用程序终止时停止。它需要再次撤销,并且警报管理有助于再次启动服务。
连续服务有很多方法提及,但这些方法在kitkat版本后没有帮助。
如果你已经成功地运行你的服务,即使在应用程序终止后,不使用任何闹钟管理器,如调度方法,请让我知道。
报警管理器我试过了,但是确实发生了......当我得到解决方案时,我一定会分享.. –
见onStartCommand
方法和帕拉姆:
START_STICKY
START_NOT_STICKY
START_REDELIVER_INTENT
START_STICKY_COMPATIBILITY
如果不工作,也许你没有系统的权限,以保持服务在后台运行
这些应用如Facebook,whatsapp一直在后台运行如何 –
这里是演示:
public class SyncJobService extends Service {
private String TAG = "mytag";
private Timer timer = new Timer();
private EventBus evenBus = EventBus.getDefault();
public static Date lastSyncDate;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
Log.d(TAG, "run: StartSyncEvent");
// Implement your logic
}
}, 0, 5 * 60 * 1000);//5 Minutes
}
@Override
public void onDestroy() {
Log.d(TAG, "onDestroy: ");
super.onDestroy();
}
}
清单文件:
<service
android:name=".service.SyncJobService"
android:enabled="true"
android:exported="false" />
你的服务做了什么,你能告诉我们吗? –
它用于与服务器同步数据。 –
在一些手机一样联想,XOLO等被终止背景的第三方应用程序。因此,当应用程序关闭时,它不会允许后台服务。请使用其他手机检查您的服务。 1.使用开始前台服务。 2.在启动粘贴时,如果应用程序终止,服务会自动重新启动以供后台进程使用。
将您的服务作为前台进程,以便Android系统将视为前台应用并且不会轻易杀死。使用下面的代码使您的服务成为前台。
StartForeground(100, new Notification());
请记住,您需要在服务的ondestroy中调用stopforeground(100)。
写一个私有的类方法与你希望你的服务来执行,并从'onStartCommand称之为()'的代码。除非需要某些东西来初始化服务,否则构造函数不是必需的。 –