嗨,大家好我面对这个问题但测试没有成功,我一直在寻找信息,但目前找不到任何解决方案。我遵循服务指南,所有指南都说,但我仍然有问题 我的服务代码:
[Service(Label="MyService")]
public class MyService : Service{
protected override StartCommandResult onStartCommand(Intent intent, StartCommandFlags flags, int startId){
var t = new Task(() => {
Looper.prepare();
do{
DoServiceWork();
while(running);
});
t.Start();
return StartCommandResult.Sticky;
}
}
在我的主要活动中:
protected override void OnCreate(Bundle bundle){
new Task(StartService).Start();
}
void StartService(){
var intent = new Intent(Application.Context, typeof(MyService));
Application.Context.StartService(intent);
}
当我的应用程序被杀时,我无法继续使用我的服务,我希望你们可以帮助我解决这个问题,提前感谢那些可以帮助我的人。
答案 0 :(得分:0)
当我的应用程序被杀时,我的服务无法继续工作
请参阅this,在本文中,您可以找到:
请注意,服务与其他应用程序对象一样,在其托管进程的主线程中运行。
“服务在主线程中运行”,这意味着如果您的app / main-process / main-thread被杀死,您的服务将被终止。如果您希望自己的服务运行,您的应用必须处于活动状态。无法始终运行自定义服务。
您可以使用IntentService进行重量级计算,同时,它会提高您应用的优先级,以便您的应用无法被杀死。