使用后台服务开发活动的最佳实践

2024-03-28

我的应用程序有一个用于 UI 的活动和一个用于后台轮询乐趣的服务。好像是标准票价。

  1. AlarmManager 可以在不调用 Activity OnCreate 的情况下触发 Service Intent 吗?

  2. 将活动和服务放入不同的应用程序有什么好处吗?这会创建 2 个 apk 并使其无法作为一个应用程序放入市场吗?您能以某种方式将 2 个应用程序放入一个清单中吗?

  3. 关于两人的沟通:

- 如果 Activity 和 Service 是同一应用程序的一部分 - 我不能只在应用程序范围内存储公共对象(如用户对象)以供 2 者共享吗?

- 看起来我什至不需要担心 AIDL - 两者也可以在应用程序范围内相互弱引用 - 并且它们可以通过这种方式互相调用方法?或者他们应该使用某种观察者模式或广播监听器来相互发布/订阅?


AlarmManager 可以在不调用 Activity OnCreate 的情况下触发 Service Intent 吗?

Yes.

将活动和服务放入不同的应用程序有什么好处吗?

恕我直言,不。

这会创建 2 个 apk 并使其无法作为一个应用程序放入市场吗?

Yes.

您能以某种方式将 2 个应用程序放入一个清单中吗?

从纯 XML 的角度来看,清单中有多个空间可以容纳多个<application>元素。但是,据我所知,仅支持一种。

如果 Activity 和 Service 是同一个应用程序的一部分 - 我不能只在应用程序范围内存储公共对象(如用户对象)以供两者共享吗?

对于非常快的事情,是的。但是,请记住,您的服务可能会被关闭(由 Android、用户等),之后您的进程可能会被终止,并且您的Application物体消失poof。我只会将其用于轻量缓存。

看来我什至不需要理会 AIDL

正确——这只需要进程间服务绑定。

两者也可能在应用程序范围内相互弱引用

一百万年后我也不会这么做。请负责任地使用该平台。活动和服务可以通过多种方式进行通信,同时保持松散耦合(或者,在本地绑定模式的情况下,以 Android 感知的方式紧密耦合)。

或者他们应该使用某种观察者模式或广播监听器来相互发布/订阅?

沿着这些思路的东西会更好。虽然活动和服务可能同时共存于同一流程中,但它们并非设计为彼此直接链接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用后台服务开发活动的最佳实践 的相关文章

  • 如何恢复默认状态栏颜色?

    在我的一项活动中 我不希望状态栏有任何颜色 我希望它在我的应用程序运行之前保持为任何颜色 我可以将其更改为黑色 但黑色不是默认值 默认值是透明的 我不想尝试找出哪种透明度是正确的 因为它在其他人的手机上可能有所不同 所以我想在此特定活动中基
  • 反应本机矢量图标显示为问号[重复]

    这个问题在这里已经有答案了 我已经安装了react native v0 46并安装了NativeBase 但在组件中使用标签后 没有显示图标而是显示问号 Android且未在iOS中测试 为了解决这个问题 我做了很多修改 如下所示 rnpm
  • UnsupportedOperationException:尝试从与某个不关联的上下文获取显示

    我在实时应用程序上遇到 UnsupportedOperationException 崩溃 所有崩溃都与 Moto Android 11 设备相关 可以看到它和onKeyUp有某种关系 但仍然不知道如何重现或解决这个问题 任何帮助 将不胜感激
  • Android Camera2 API - 实时显示处理后的帧

    我正在尝试创建一个实时处理相机图像并将其显示在屏幕上的应用程序 我正在使用camera2 API 我创建了一个本机库来使用 OpenCV 处理图像 到目前为止 我已经成功设置了一个 ImageReader 来接收 YUV 420 888 格
  • Eclipse 构建 Android 应用程序:如何在编译时创建两个版本?

    我正在编写一个 Android 应用程序 并希望基于相同的代码创建两个版本 免费版本和高级版本 我有两个版本的一个代码库 具有各种运行时检查来启用或禁用某些功能 例如 public class MyAppContext extends Ap
  • 如何在 El Capitan (OS X 10.11) 中设置 Android Studio?

    全新安装 El Capitan 10 11 尝试安装 Android Studio 版本 1 21 Error Android Studio was unable to find a valid JVM Please download it
  • Android文件上传器与服务器端php

    我几个小时以来一直在寻找解决方案 但找不到任何解决方案 基本上 我想从我的 Android 设备上传文件到 http 网站 但是 我不知道如何做到这一点 我在设备上使用java 并且我想在服务器端使用PHP 我只想上传文件 而不是在服务器上
  • Android Oreo 上的操作系统阻止了地理围栏转换 PendingIntent

    这只发生在 Android Oreo 上 我正在使用 Play 服务 11 4 2 我正在使用 GeofencingClient 和 addGeofences 方法将地理围栏注册到正在处理地理围栏转换的 IntentService 中 并将
  • com.android.builder.packaging.DuplicateFileException:在 APK META-INF/maven/com.fasterxml.jackson.core/jackson-databind/pom.xml 中复

    我正在创建一个使用 Rest API 来获取数据的应用程序 对于该操作 我使用 Retrofit2 okhttp3 和 jackson 将 json 解析为对象 我的应用程序还使用 Firebase Cloud Messaging 当我编译
  • getActivity() 在我的 ActivityInstrumentationTestCase2 类中返回 null

    我希望我的应用程序使用 ActivityInstrumentationTestCase2 在代码中执行以下测试 问题是 getActivity 方法返回 null 这会导致包含 getActivity 的行正下方的行出现 NullPoint
  • 控制器对延迟作业的操作

    我正在上传一个制表符分隔的文档并在控制器中进行处理 一切正常 但处理大文件可能需要一些时间 我想将其移至delay job 我在应用程序的其他地方工作 但由于这是在控制器中 因此无法以相同的方式调用 该表单调用 process file 操
  • 如何以编程方式设置(文本)视图属性?

    我拼命尝试以编程方式设置表中单元格的 TextView 属性 但无法使其工作 每当我设置布局属性时 该字段将不会出现 但不会给出任何错误或异常 我将其归结为这个简单的例子 package mmo application listpro im
  • 找不到不使用 GL11Ext 进行绘图的 android 2d opengl sprite 类的合适示例

    正如 SpriteMethodTest 所说 绘制精灵的方法有很多种 首先 我尝试了canvas 并遇到了一些性能问题 接下来 我决定学习opengl 我使用 GL11Ext 扩展取得了第一个成就 但是 默认情况下您知道 当您绘制纹理时 它
  • 在 Android 中 - 如何使用 ClickableSpan 只注册长点击

    我想注册对包含在 ClickableSpan 中的文本的点击 前提是点击时间超过 1 秒 有什么办法可以做到这一点吗 如果没有 捕获双击也可以 如果 onClick 方法捕获了一个包含有关点击的一些元数据的事件 那就太好了 那么如果点击长度
  • Espresso + Junit4 - 在运行所有测试之前登录一次

    我想为我的一个应用程序编写一些自动化测试 所有功能都需要登录 所以 我已经编写了测试 但对于每个测试 它都是进行登录并测试功能 有没有办法帮助我只登录一次然后运行所有测试 最简单的方法是仅用一种测试方法编写所有测试 但我认为实现这一目标的方
  • Android 中的 RoboSpice 库是什么

    我正在尝试了解 android 中的 RoboSpice 库 我在这里看到了在线文档 https github com stephanenicolas robospice wiki Starter Guide 我尝试过什么 我之前研究过使用
  • Android - 深色模式问题:深色背景上的黑色文本

    当我启用深色模式时 我的应用程序上的某些菜单看起来很糟糕 非常暗的背景上的黑色文本 我对颜色完全是一个初学者 我还没有接触过 android studio 上默认颜色设置的任何内容 所以我有默认的两个主题 XML 和 Color Xml
  • android 将自定义字体设置为油漆

    我想在油漆上绘制文字 如何用自定义字体绘制它 前 Helvetica 并且还粗体 我更愿意使用系统字体而不是从资源创建它 谢谢 如果 自定义字体 是指作为资源提供的字体 则以下代码应该有效 Typeface plain Typeface c
  • 从 Android 通知中的 URL 加载图像

    在我的 Android 应用程序中 我想动态设置将从 URL 加载的通知图标 为此 我使用了setLargeIcon中的NotificationBuilder的属性receiver 我参考了很多链接并尝试了各种解决方案 但无法获得所需的输出
  • Firebase 事件未从 Android 服务记录

    我的 Android 应用程序中有一个音乐流媒体服务 我试图使用 Fire base 事件日志记录流媒体音乐 我相应地实现了所有内容 我可以从我的活动中看到事件 但不能从我的服务中看到事件 我是否遗漏了某些内容 或者 firebase 不支

随机推荐