我有背景Service
。我希望其生命周期独立于应用程序的生命周期Activity
。
是的,我知道我必须手动将服务关闭,作为应用程序逻辑的一部分。
如何与应用程序的第一个活动一起启动启动服务?
调用firststartService(intent)
的onCreate()
方法Activity
。
我有后台服务。我希望它的生命周期独立于应用程序活动。
最好的方法是为创建PendingIntent
一个Service
并将其注册到中AlarmManager
:
Intent i = new Intent(this, LocationService.class);
PendingIntent pi = PendingIntent.getService(this, 1, intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
am.setInexactRepeating(AlarmManager.RTC_WAKEUP,0,60*60*1000, pi); /* start Service every hour. */
这将确保Service
定期以固定间隔启动,而与用户是否将应用程序带到前台无关。
启动Android应用程序时如何启动服务?
您可以Service
通过扩展Application
类来在应用程序启动时自动启动:
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
startService(new Intent(this, NetworkService.class));
}
}
并修改application
代码,请manifest
与
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:name="com.mycompanydomain.MyApp">
之所以Application
可行,是因为该类是启动应用程序时首先要创建的实体之一。Service
无论启动什么,它都会启动Activity
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句