如何启动仅限Service的Android应用程序

如何启动仅限Service的Android应用程序,第1张

概述我正在创建一个应用程序,其唯一的组件是一个继续在后台运行的服务(基本上是代理服务器),但我无法找到如何启动该服务的方法.应用程序无法进行任何UI或用户交互,因此我不使用Activity.广播接收器可以收听BOOT广播,但是如何在安装时首次启动服务,如何让它保持运行?或是否有一个广播,

我正在创建一个应用程序,其唯一的组件是一个继续在后台运行的服务(基本上是代理服务器),但我无法找到如何启动该服务的方法.应用程序无法进行任何UI或用户交互,因此我不使用Activity.
广播接收器可以收听BOOT广播,但是如何在安装时首次启动服务,如何让它保持运行?
或是否有一个广播,我可以在安装应用程序后收听,例如可能是TIME_TICK,但必须从我认为的活动中注册.

解决方法:

不幸的是,目前在安装应用程序后没有可靠的方法来接收广播事件,ACTION_PACKAGE_ADDED Intent不会广播到新安装的软件包.

您必须拥有广播接收器类以及您的服务才能收到ACTION_BOOT_COMPLETED活动.我还建议添加ACTION_USER_PRESENT意图被该广播接收器捕获,这需要AndroID 1.5(minSDK = 3),这将在用户解锁手机时呼叫您的广播接收器.你可以做的最后一件事就是在没有轻易自动关闭的情况下保持你的服务运行是在你的服务onCreate中调用Service.setForeground()告诉AndroID你的服务不应该停止,这主要是为mp3播放器类型添加的必须继续运行但可由任何服务使用的服务.

确保为清单中的boot_complete和user_present事件添加适当的权限.

这是一个简单的类,您可以将其用作事件的广播接收器.

package com.snctln.util.WeatherStatus;import androID.content.broadcastReceiver;import androID.content.Context;import androID.content.Intent;public class WeatherStatusServiceReceiver extends broadcastReceiver{    @OverrIDe    public voID onReceive(Context context, Intent intent)    {        if(intent.getAction() != null)        {            if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED) ||                intent.getAction().equals(Intent.ACTION_USER_PRESENT))            {                context.startService(new Intent(context, WeatherStatusService.class));            }        }    }};

祝好运.

总结

以上是内存溢出为你收集整理的如何启动仅限Service的Android应用程序全部内容,希望文章能够帮你解决如何启动仅限Service的Android应用程序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1104076.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存