【问题标题】:Android Accesibility Service [duplicate]Android 无障碍服务 [重复]
【发布时间】:2015-11-27 14:15:02
【问题描述】:

假设我有一个由我的应用程序定义的辅助功能服务,谁能解释我。当应用程序获得可访问性权限时,它开始运行。假设由于某种原因内存问题服务被停止。如何让服务重新启动找不到任何方法。请帮忙。

非常感谢。

嗨,Oblivion,直到今天我才刚开始提问,我以前只是指 Stack Overflow :-)。对不起,我会确保我会提供完整的描述。现在我的问题。

我正在考虑两种方法

  1. 作为粘性服务启动
  2. 在不同的进程中运行服务

第一种方法 -> 假设应用程序崩溃了,由于它很粘,它重新启动,并且由于之前崩溃的一些错误,它再次崩溃,但出现一些异常,之后 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 的生命周期。

【问题讨论】:

  • 发布您的代码,并分享您遇到问题的地方,这是提出完整问题的方式
  • 欢迎来到 Stack Overflow,在发布任何关于 SO 的问题之前,请查看帮助 (stackoverflow.com/help) 部分。谢谢。
  • 启动服务的简单方法 startService(new Intent(this, YourService.class));它告诉android启动服务。同样不知何故,我知道我的 AccesibilityService 不再运行,我不希望我的用户转到 Settings-> Accesibilty 重新启动服务

标签: android accessibility


【解决方案1】:
@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 意图调用 onStartCommand(),除非有待启动的意图来启动服务,在这种情况下,将传递这些意图。这适用于不执行命令但无限期运行并等待作业的媒体播放器(或类似服务)。

START_REDELIVER_INTENT

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

我们可以返回以上任何一个,这取决于我们的要求。

来源:Here!!!

【讨论】:

  • 现在我添加了源代码,谢谢! @rmtheis
  • 谢谢 rmtheis 和 Baratam....我在 Stackoverflow 中关注了您的所有帖子,它对我来说非常有效。
  • 启动服务的简单方法 startService(new Intent(this, YourService.class));它告诉android启动服务。同样不知何故,我知道我的 AccesibilityService 不再运行,我不希望我的用户转到 Settings-> Accesibilty 重新启动 Servic
猜你喜欢
  • 2021-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-03
相关资源
最近更新 更多