Android Accesibility Service

时间:2015-11-27 05:26:55

标签: android android-accessibility

任何人都可以解释我的假设我有一个由我的应用程序定义的辅助功能服务。当为应用程序提供“可访问性”权限时,它将开始运行。假设由于某些原因,内存问题导致服务停止。如何让服务再次启动无法找到任何方法。请帮忙。

非常感谢你。

嗨Oblivion,我是新问题,直到今天我曾经只是参考Stack Overflow :-)。对不起,我将确保我将完整的描述。现在我的问题。

我正在考虑两种方法

  1. 以粘性服务开始
  2. 以不同的流程运行服务
  3. 第一种方法 - >假设应用程序崩溃,并且由于它是粘性的,它会重新启动,并且由于先前崩溃的一些错误,它会在Android无法启动服务之后再次崩溃 Posible Soln - >使服务逻辑尽可能无错误

    第二种方法 - >在http://mindtherobot.com/blog/37/android-architecture-tutorial-developing-an-app-with-a-background-service-using-ipc/的其他流程中运行服务 并确保你采取第一种方法提到的所有解决方案。

    我所做的所有这些事情都在解决我的问题。

    我原来的问题是假设我已将客户端绑定到Accesibility服务,并且我已经知道我的Accesibility服务没有运行,我是否可以通过这种方式触发意图并告诉Android启动我的AccesibilityService。 我需要这样做,因为我想控制我的Accesibility的生命周期,而不是Android。

1 个答案:

答案 0 :(得分:4)

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show();

//your code!!!

// If we get killed, after returning from here, restart
return START_STICKY;
}

如上所述更改您的return statement。它将重新启动您的服务。

<强> START_NOT_STICKY

如果系统在onStartCommand()返回后终止服务,则不要重新创建服务,除非有待传递的待处理意图。这是避免在不需要时运行服务以及应用程序只需重新启动任何未完成的作业时最安全的选项。

<强> START_STICKY

如果系统在onStartCommand()返回后终止服务,则重新创建服务并调用onStartCommand(),但不要重新传递最后一个意图。相反,系统使用null intent调用onStartCommand(),除非有待启动的意图来启动服务,在这种情况下,这些意图被传递。这适用于不执行命令但无限期运行并等待工作的媒体播放器(或类似服务)。

<强> START_REDELIVER_INTENT

如果系统在onStartCommand()返回后终止服务,则重新创建服务并使用传递给服务的最后一个意图调用onStartCommand()。任何待处理的意图依次交付。这适用于主动执行应立即恢复的作业的服务,例如下载文件。

我们可以退回上述任何一项,具体取决于我们的要求。

来源:Here!!!