我读了一些文章,似乎都做了同样的事情,我想知道启动服务之间的区别是什么:
Intent intent = new Intent(this, HelloService.class);
startService(intent);
Run Code Online (Sandbox Code Playgroud)
或者像那样:
Calendar cal = Calendar.getInstance();
Intent intent = new Intent(this, MyService.class);
PendingIntent pintent = PendingIntent.getService(this, 0, intent, 0);
AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 30*1000, pintent);
Run Code Online (Sandbox Code Playgroud)
当我读完时,这两个做同样的事情,如果在服务中你返回一个参数START_STICKY;
通常当我创建Android服务时,我实现了该onCreate方法,但在我的上一个项目中,这不起作用.我尝试实现onStartCommand,这似乎工作.
问题是:当我必须实现一个需要哪种方法的服务时?我必须实施哪些方法?onCreate,onStartCommand或两者兼而有之?每个人的角色是什么?
我想在一个BroadcastReceiver内部启动Service.我想要做的是有一个后台运行service,收集传入的短信,并记录来电.我认为最好的解决方法是service运行一个包含可以编目的广播接收器.
我该怎么做呢?我已经启动并运行了我的服务.
我注意到 Pixel 5 和 Pixel 4a(均在 Android 12 上)有一个例外(Firebase Crashlytics),没有其他设备,仅发生两次,每个设备一次。
这是什么意思?Android 11 和 12 对于前台服务的使用规则相同,但 Android 11 没有问题。这是 Pixel 的错误吗?
来自 Firebase Crashlytics:
Fatal Exception: android.app.ForegroundServiceStartNotAllowedException
startForegroundService() not allowed due to mAllowStartForeground false: service com.*.*/.service.RecorderService
android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel (ForegroundServiceStartNotAllowedException.java:54)
androidx.core.content.ContextCompat.startForegroundService (ContextCompat.java:6)
MyAppPackageHidden.service.RecorderService$Companion.startService (RecorderService.java:2)
MyAppPackageHidden.ui.rec.RecActivity$getConnectionRecorderService$1.onServiceConnected (RecActivity.java:4)
android.app.LoadedApk$ServiceDispatcher.doConnected (LoadedApk.java:2077)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1003)
Fatal Exception: android.app.ForegroundServiceStartNotAllowedException: startForegroundService() not allowed due to mAllowStartForeground false: service MyAppPackageHidden/.service.RecorderService
at android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel(ForegroundServiceStartNotAllowedException.java:54)
at android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel(ForegroundServiceStartNotAllowedException.java:50)
at android.os.Parcel.readParcelable(Parcel.java:3333)
at android.os.Parcel.createExceptionOrNull(Parcel.java:2420)
at android.os.Parcel.createException(Parcel.java:2409)
at android.os.Parcel.readException(Parcel.java:2392)
at android.os.Parcel.readException(Parcel.java:2334)
at android.app.IActivityManager$Stub$Proxy.startService(IActivityManager.java:5971)
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1847)
at android.app.ContextImpl.startForegroundService(ContextImpl.java:1823)
at …Run Code Online (Sandbox Code Playgroud) 我的应用程序中有以下场景.我的应用程序中没有UI; 相反,有一个服务在启动时启动并将继续运行.
如何在没有主Activity的情况下配置清单文件?我是否可以在没有任何活动的情 在启动我的应用程序时,我的服务应该启动.这可能吗?
我不想制作半透明的Activity来启动服务.
我试图澄清Android中广播接收器和服务之间的区别.
我知道活动可以通过调用startService意图来启动服务.
广播接收器可以在代码或清单中注册,并可以使用sendBroadcast.
你什么时候使用一个与另一个?
我知道多个广播接收器可以监听相同的意图,而服务并非如此.
我正在创建一个类似于内置SMS应用程序的应用程序.
我需要的:
我尝试过:
- 运行常规服务,直到Android杀死服务一直工作
- 使用AlarmManager进行5分钟.间隔呼叫服务.但我无法做到这一点.
我一直在使用Phonegap开发Android应用程序,现在想要关闭应用程序,它仍然可以在应用程序中执行java/js代码.所以我理解我需要创建一个服务.如果我在phonegap上创建服务插件,我仍然可以执行javascript代码或只执行java吗?
有没有人做过这样的事情?我找到了这个讨论,但似乎没有用:http://groups.google.com/group/phonegap/browse_thread/thread/722b0e796baa7fc6 这就是我现在所拥有的一切.
在我转向开发本土之前,如果我无法弄清楚它以为我会问以前是否有人这样做过.我似乎无法找到任何类似的手机插件插件.
编辑:我有一个应用程序执行Java代码作为服务.但是当它调用sendjavascript时它不起作用.那么有什么方法可以在后台运行javascript代码以及使用phonegap关闭应用程序时?
谢谢
我想创建一个服务并让它在前台运行.
大多数示例代码都有通知.但我不想透露任何通知.那可能吗?
你能举个例子吗?还有其他选择吗?
我的应用服务正在做媒体播放器.如何使系统不杀死我的服务,除了应用程序自杀(如按钮暂停或停止音乐).
我正在创建一个将在自己的进程中运行的后台服务.它应该允许我听设备位置是否已更改.我应该能够在通知用户界面之前更改移动距离等标准.
我怎么能这样做?我对服务和LocationListener实现有一点了解.任何围绕网络的教程将不胜感激.
我从堆栈溢出中获得了一个反向链接,但我对此并不了解.
android ×10
android-service ×10
android-12 ×1
cordova ×1
foreground ×1
mobile ×1
oncreate ×1
sms ×1