服务的设置

时间:2016-09-04 16:12:31

标签: android settings

我有一个Android应用程序是一项服务:它在后台无形地运行给用户。这完成如下:

  1. MainActivity启动IntentService,然后立即完成
  2. 所有工作都在IntentService
  3. 完成
  4. 样式主题完全透明:android:Theme.Translucent.NoTitleBar
  5. 这很好用!

    但是,我想为用户提供更改某些设置的可能性。这不能以通常的方式实现(Preferences),因为我们没有UI。

    我正在考虑为应用创建Custom Account Type。毕竟,以这种方式通过系统设置应用程序(图标:cog)更改设置。

    然而,这有点像黑客。

    1. Custom Account适用于需要在服务器上进行身份验证的应用。这不适用。
    2. 我们的应用程序在Android迷你PC上运行,我们通过一个Google帐户发送数百个这样的设备。我们的用户不会像在自己的手机上那样将自己视为“用户”或“帐户持有者”。
    3. 我想知道:

      • 其他开发者如何管理服务的更改设置?
      • Custom Account Types被认为是个好主意吗?
      • 或者我只是打开一罐虫子?

2 个答案:

答案 0 :(得分:2)

  

我们通过一个Google帐户发送数百个这样的设备

我希望Google对您的计划不满意。

  

其他开发者如何管理服务的更改设置?

选项包括:

  • 没有立即MainActivity finish(),而是在那里提供设置,或通过可从那里访问的单独活动

  • 为您的设置活动设置单独的启动器图标

  • 如果您的服务是前台服务,请在其Notification上执行导致您的设置活动的操作

  • 如果您的minSdkVersion为24或更高,请为您的设置活动提供以下<intent-filter>,以便用户可以通过应用屏幕上的齿轮图标点击您的设置活动设置应用:

<intent-filter>
  <action android:name="android.intent.action.APPLICATION_PREFERENCES" />
  <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
  

如果自定义帐户类型被认为是个好主意?

仅当它是真实帐户时,用户才能理解。所以,在你的情况下,根据你的描述,这不是一个好主意恕我直言。

答案 1 :(得分:1)

创建正在进行的(粘性)通知,该通知会在交互时启动设置活动。