Questions tagged «service»

服务是长期运行的可执行文件,可执行特定功能,并且设计为不需要用户干预。

3
轻扫即可取消活动
一旦服务完成(成功或失败),我将使用android通知来提醒用户,并且该过程完成后,我想删除本地文件。 我的问题是在失败的情况下-我想让用户使用“重试”选项。如果他选择不重试并取消该通知,我想删除为处理目的保存的本地文件(图像...)。 有没有一种方法可以捕获通知的轻扫至撤消事件?

2
前台服务被Android杀死
更新:我还没有找到解决该问题的真正方法。我想出的是一种在连接断开时自动重新连接到以前的蓝牙设备的方法。这不是理想的方法,但是看起来效果很好。我很乐意听到关于此的更多建议。 我遇到的问题与这个问题大致相同:按住唤醒锁并调用包括设备(Asus Transformer)的startForeground之后,服务被终止,服务停止之前的时间(30-45分钟),使用唤醒锁,startForeground()的使用以及在屏幕关闭时打开应用程序都不会发生此问题。 我的应用程序维持与另一台设备的蓝牙连接,并在两者之间发送数据,因此它必须始终处于活动状态以侦听数据。用户可以随意启动和停止服务,实际上,这是我实现的启动或停止服务的唯一方式。服务重新启动后,与其他设备的蓝牙连接将丢失。 根据链接的问题的答案,startForeground()“减少了服务被杀死的可能性,但并没有阻止它”。我知道情况确实如此,但是我已经看到许多其他应用程序的示例,这些应用程序都没有此问题(例如Tasker)。 如果没有运行该服务直到用户停止该服务的能力,我的应用程序的实用性将大大降低。有什么办法可以避免这种情况??? 每当服务停止时,我都会在logcat中看到此消息: ActivityManager: No longer want com.howettl.textab (pid 32321): hidden #16 WindowManager: WIN DEATH: Window{40e2d968 com.howettl.textab/com.howettl.textab.TexTab paused=false ActivityManager: Scheduling restart of crashed service com.howettl.textab/.TexTabService in 5000ms 编辑:我还应该注意,这似乎不在我连接到的其他设备上发生:运行Cyanogen的HTC Legend 编辑:这是输出adb shell dumpsys activity services: * ServiceRecord{40f632e8 com.howettl.textab/.TexTabService} intent={cmp=com.howettl.textab/.TexTabService} packageName=com.howettl.textab processName=com.howettl.textab baseDir=/data/app/com.howettl.textab-1.apk resDir=/data/app/com.howettl.textab-1.apk dataDir=/data/data/com.howettl.textab app=ProcessRecord{40bb0098 2995:com.howettl.textab/10104} isForeground=true …


6
无法启动服务意图
我有一个服务班。我将此类导出到jar,并将jar嵌入到客户端应用程序中。 需要时,我调用服务类。当我尝试执行此操作时,出现以下错误: Unable to start service Intent {comp={com.sample.service/com.sample.service.serviceClass}} : not found 除了服务类外,我还有其他类,可以访问(创建该类的对象)在同一jar内。 我觉得我错过了配置或清单中的某些内容。 请帮我识别一下。我的代码如下: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = new Intent () ; intent.setClassName("com.sample.service" ,"com.sample.service.serviceClass") ; this.startService(intent) ; // when I call this line I get the message... // binding other process continue here } 客户端manifest.xml …

2
在特定服务之后启动systemd服务?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 2年前关闭。 改善这个问题 我有一个一般性的问题。成功启动*.service特定单元后,如何启动systemd单元*.service? 更具体的问题是,如何website.service仅在启动后才能mongodb.service启动?换句话说website.service应该依靠mongodb.service。
81 service  systemd 



3
在Android中停止服务
在这里,我尝试了简单的服务程序。启动服务可以正常工作并生成Toast,但停止服务则不能。此简单服务的代码如下: public class MailService extends Service { @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } public void onCreate(){ super.onCreate(); Toast.makeText(this, "Service Started", Toast.LENGTH_SHORT).show(); } public void onDestroyed(){ Toast.makeText(this, "Service Destroyed", Toast.LENGTH_SHORT).show(); super.onDestroy(); } } 调用此服务的活动的代码如下: public class ServiceTest extends Activity{ private Button start,stop; public …
79 android  service 

12
无法解决Manifest.permission.ACCESS_FINE_LOCATION
向清单文件添加权限时,以下xml起作用。 <permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 但是,此xml不起作用。 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 我应该使用哪一个?如果是第一个,为什么它不起作用?我该如何解决? 另外,我得到了与Android 6.0运行时权限相关的异常: java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission. 当我尝试将权限添加到String数组以检查权限时,Android StudioManifest.permission在以下代码中告诉我它无法解析: new String[]{Manifest.permission.ACCESS_FINE_LOCATION} 为什么会这样做呢?我该如何解决?

14
应用程序关闭时,Android服务停止
我正在从主要的Android活动中启动服务,如下所示: final Context context = base.getApplicationContext(); final Intent intent = new Intent(context, MyService.class); startService(intent); 当我通过从最近的应用程序列表中划出活动页面来关闭活动页面时,该服务将停止运行并在一段时间后重新启动。由于我的应用程序要求,我无法将持久性服务与通知一起使用。如何使服务不重新启动或关闭,而仅在应用退出时继续运行?

6
Android:在应用被杀死时保持服务运行
IntentService即使应用被杀死,我也希望在后台继续运行。“杀死”的意思是长时间按主页按钮->查看所有正在运行的应用程序->将我的应用程序滑到一边->应用程序被杀死,或者长时间按后退按钮->应用程序被杀死 我的代码如下。在我的MainActivity中: Intent intent = new Intent(this, MyService.class); this.startService(intent); 在我的MyService中: public class MyService extends IntentService { @Override protected void onHandleIntent(Intent intent) { System.out.println("MyService started"); run(); } private void run() { while (true){ System.out.println("MyService still running"); doSomething(); waitSomeTime(); } } } 打开应用程序后,我看到该服务正在运行。通过主页按钮最小化应用程序时,它仍在运行。通过后退按钮关闭应用程序时,它仍在运行。但是,如果我如上所述杀死它,它将停止。我该如何解决?

5
服务意图必须明确:意图
我现在有一个应用程序,通过广播接收器(MyStartupIntentReceiver)调用服务。为了调用服务,广播接收器中的代码是: public void onReceive(Context context, Intent intent) { Intent serviceIntent = new Intent(); serviceIntent.setAction("com.duk3r.eortologio2.MyService"); context.startService(serviceIntent); } 问题是,在Android 5.0 Lollipop中,出现以下错误(在早期版本的Android中,一切正常): Unable to start receiver com.duk3r.eortologio2.MyStartupIntentReceiver: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.duk3r.eortologio2.MyService } 为了将服务声明为显式且正常启动,我必须更改什么?在其他类似线程中尝试了一些答案,但尽管我摆脱了该消息,但该服务无法启动。

9
Android服务需要始终运行(永远不要暂停或停止)
我创建了一个服务,希望一直运行此服务,直到我的手机重新启动或强制关闭为止。该服务应在后台运行。 创建的服务和启动服务的示例代码: 启动服务: Intent service = new Intent(getApplicationContext(), MyService.class); getApplicationContext().startService(service); 服务: public class MyService extends Service { @Override public int onStartCommand(Intent intent, int flags, int startId) { // TODO do something useful HFLAG = true; //smsHandler.sendEmptyMessageDelayed(DISPLAY_DATA, 1000); return Service.START_NOT_STICKY; } @Override public IBinder onBind(Intent intent) { // TODO for communication …
70 java  android  service 

2
Python脚本作为Linux服务/守护程序
哈o 我试图让python脚本在(ubuntu)linux上作为服务(守护程序)运行。 在网络上,存在几种解决方案,例如: http://pypi.python.org/pypi/python-daemon/ 行为规范的Unix守护进程很难正确执行,但是每个守护程序所需的步骤几乎相同。DaemonContext实例保存程序的行为和配置的进程环境。使用实例作为上下文管理器进入守护程序状态。 http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/ 但是,由于我想将我的python脚本专门与ubuntu linux集成,我的解决方案是与init.d脚本结合使用 #!/bin/bash WORK_DIR="/var/lib/foo" DAEMON="/usr/bin/python" ARGS="/opt/foo/linux_service.py" PIDFILE="/var/run/foo.pid" USER="foo" case "$1" in start) echo "Starting server" mkdir -p "$WORK_DIR" /sbin/start-stop-daemon --start --pidfile $PIDFILE \ --user $USER --group $USER \ -b --make-pidfile \ --chuid $USER \ --exec $DAEMON $ARGS ;; stop) echo "Stopping server" /sbin/start-stop-daemon --stop …
70 python  linux  service  daemon 

7
通过Android中的服务获取GPS位置
我需要使用后台服务监视用户的位置,然后加载它们并向用户显示路径。 使用活动,获取GPS位置非常容易,但是当我必须通过服务来获取GPS位置时,我遇到了一个问题,因为它似乎仅适用于弯针线程(或类似的线程)。 当我在互联网上寻找解决方案时,我发现很多人遇到了同样的问题,但是我找不到可行的解决方案。有人说您需要使用prepare-> loop-> quit,而有人说您必须使用handlerThread,但是,我仍然无法找到如何以正确的方式来做这些事情。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.