问题标签 [android-backup-service]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 由 UI 启动的第 1 部分持久性前台 android 服务,也可以在睡眠模式下工作,也可以在手机重启时启动
Status:---
我同样接受 Karakuri 和 Sharad Mhaske 的回答,但是由于 Sharad Mhaske是在赏金开始后回答的,所以赏金应该给他。
第 2 部分制作:第 2部分由 UI 启动的持久前台 android 服务,也可以在睡眠模式下工作,也可以在手机重启时启动
中stack overflow
,只能接受一个答案。我认为这两个答案都是可以接受的,但必须选择一个(我是随机选择的)。
邀请观众对答案/问题进行投票/否决以感谢您的努力!. 我赞成 Karakuri 的回答以补偿声誉。
Scenario:---
我想让用户单击启动/停止按钮并从 UI 活动启动/停止服务。我已经制作了 UI,所以不在乎。但只是按钮点击事件的逻辑。
不希望服务绑定到 UI 活动。如果活动关闭,服务应该继续运行。
要尽最大努力使服务保持持久并且在任何情况下都不会停止。将给予它最大的权重并运行它,
ForGroundSerice
因为它具有更高的重要性等级。(希望没问题?)除非我的应用程序 UI单击停止按钮,否则即使 android 回收内存,也不希望它停止(或应该重新启动)。我和手机的用户,都/将会知道它。服务是最重要的。甚至在睡觉时。
details= 我的应用程序执行一些操作,在用户提供的时间(通常为 15 分钟)内休眠,唤醒并再次执行操作。这永远不会结束)
如果我需要
AlarmManager
,如何实现?或任何其他方式?或者只是把操作放在while loop and sleep for 15 minuts
最后?服务启动时(通过单击启动按钮)。它应该输入一个条目,以便在手机重新启动时自动启动。
QUESTION:---
Primary Question:
只是无法为该场景找到最佳策略......并且还停留在一小段代码上,使用哪一个以及如何使用。
从 stackoverflow.com 问题、developer.android.com 和一些谷歌结果中收集的点点滴滴,但无法在集成中实现。
请阅读请求部分。
Secondary Question:
我代码中的注释就是那些小问题。
Research and Code:---
战略:
启动/停止服务的 Activity UI 类:
服务类:
清单文件:
References:---
Android - 为服务实现 startForeground?指向答案1,示例代码。
http://developer.android.com/guide/components/services.html
http://developer.android.com/reference/android/app/Service.html
http://developer.android.com/training/run-background-service/create-service.html我不喜欢。
http://developer.android.com/guide/components/processes-and-threads.html我的研究起点
Requests:---
我认为这个问题对于大多数处理服务的人来说是一种正常的做法。在该愿景中,请仅在您有场景经验并且能够以最大示例代码作为完整版本全面解释方面和策略的情况下回答,这样对社区也有帮助。
对答案进行上下投票(负责任地),因为这对我很重要,谁分享了他们的观点、时间和经验,并帮助了我和社区。
android - 多台设备上的 Android 备份
更新:好的,10 个小时过去了,我在两台设备上再次运行相同的代码,令人惊讶的是,备份和恢复操作现在运行良好。今天对我来说一定是个好日子。
我用来重现备份和还原场景的过程:
1) 我在 Eclipse 中使用发布密钥导出了我的备份应用程序 APK。
2) 我卸载了我在 Desire S 和 Galaxy S2 上的备份应用程序。
3)我通过禁用和重新启用备份清除了两台设备上的所有备份数据。
4) 将 Desire S 连接到 USB 调试后,我通过“adb shell bmgr list sets”确认没有还原集存储在我的帐户中。
4) 我从 USB 断开 Desire S,在上面安装了我的备份应用程序。
5) 我运行备份应用程序,它调用 backupmanager.datachanged() 方法。
6)我用USB调试连接了Desire S,通过运行“adb shell bmgr run”强制备份操作开始。
7) 我确认使用“adb shell bmgr list sets”创建了一个还原集。
8) 我在 Galaxy S2 上安装了我的备份应用程序,在 Desire S 中创建的备份会自动恢复。
我将进一步测试以查看是否可以可靠地复制此过程,尤其是在我不强制执行备份操作时。
我正在编写一个简单的备份程序,可以在 Android 设备上备份和恢复一个小文件。我已经完成了几乎所有需要的事情(例如编写自定义 BackupAgent),并且备份和恢复操作在同一台设备上顺利运行。
但是,当我尝试跨两台设备执行备份和恢复时,即在一台设备上备份并在另一台设备上恢复时,恢复操作根本失败。它无法识别我创建的备份。然后我尝试在两个设备上备份和恢复相同的文件(但文件包含不同的内容)。我发现这两个设备独立备份和恢复。
我读过Android上的BackupManager服务旨在备份设备上的数据并在用户更改为另一台设备时恢复。这个过程显然涉及两个不同的设备。为什么备份和恢复功能不能跨两个设备工作?
我知道多个与我相似的问题,例如this和this。不幸的是,我不认为它们包含对我有用的答案。
我可以知道是否有人成功地创建了可以使用 Android BackupManager 服务在多个设备上备份和恢复的应用程序?
PS 供您参考,这两款设备是 HTC Desire S (Android 2.3.5) 和三星 Galaxy S2 i9100 (Android 4.1.2)。两者都运行最新的官方库存 ROM。当然,它们是使用同一个 Google 帐户激活的。
非常感谢。
android - 如何在应用程序的整个生命周期中调用方法
我正在开发示例应用程序,它有一个 sqlite 和 mysql 数据库。如果互联网连接有数据进入 web 服务器数据库(mysql 数据库),如果没有互联网连接数据保存 sqlite 数据库,重新打开应用程序与 web 服务器数据库(mysql 数据库)同步后,现在我想同步 web 服务器数据库( mysql 数据库)在不重新打开应用程序的情况下,应用程序的运行时间应该是同步的。帮我
java - BackupTransportService 服务器策略异常
为了让我的应用程序保持“最新”状态,我想从 Android 的框架中实现备份服务。
我所做的是使用 SharedPreferenceBackupHelper 添加 3 个首选项文件,并将我自己的数据库备份助手实现为 FileBackupHelper 的一种形式。
但是,当我尝试使用文档中的 adb shell 命令启动备份时,出现以下错误。
我的密钥是正确的,我尝试使用调试签名的 apk 和普通签名的 apk,但都抛出相同的错误。
知道那是怎么回事吗?我想知道。
android - 在 AndroidManifest 中存储加密值
我已经注册了Android Backup Service,并获得了一个密钥,可以放入我的 AndroidManifest.xml。我的应用程序是开源的,但我不想让密钥在我的存储库中公开可见。我应该如何加密密钥,以便只能在我的应用程序中解密?
android - 如何通过云端备份 Android 上的 App 数据?
背景
我希望为我正在开发的应用程序存储和恢复一些设置和其他值。
问题
事实证明,Android 已经有了一个不错的功能,叫做“ BackupAgent ”。
但是,似乎并非所有设备都支持它:
数据备份不保证在所有 Android 设备上都可用
这不是 API 问题(尽管仅从 2.2 开始支持),而是制造商/运营商问题:
备份传输是 Android 备份框架的客户端组件,可由设备制造商和服务提供商定制。备份传输可能因设备而异,并且任何给定设备上可用的备份传输对您的应用程序是透明的。备份管理器 API 将您的应用程序与给定设备上可用的实际备份传输隔离 - 您的应用程序通过一组固定的 API 与备份管理器通信,而不管底层传输如何。
问题
是否有另一种免费的替代方法可以将 Android 上的数据存储和恢复到云中?
android - 从云备份和恢复应用程序数据时崩溃
我通过以下链接http://developer.android.com/training/cloudsync/backupapi.html将应用数据同步到 Google 服务器。我做了文档中提到的所有步骤。但是每次我尝试恢复数据时它都会崩溃。我写的代码如下所示。
清单文件
** TheBackUpAgent 类**
BackUpAvtivity 类
在这个类中,我有两个按钮,一个用于备份,一个用于恢复。每个按钮内的代码是。
崩溃报告
android - SQLite数据库备份android
我已完成以下操作以使 SQLite 数据库备份/恢复正常工作。
(1) 从谷歌获得注册。
[ http://developer.android.com/google/backup/signup.html][1]
(2)在Manifest xml文件中添加key
<application>
<meta-data android:name="com.google.android.backup.api_key"
android:value="backup_service_key_from_google" />
...
</application>
(3)在XML文件中添加我的backagent代理
(4)创建一个名为MyBackupAgent的类
(5)调用备份Manager进行备份
在第 5 步之后,我看不到任何事情发生。我在 MyBackupAgent 中设置了一个断点。onCreate() 函数没有任何停止。
有什么建议么?
android - 在 Android 4.3 上创建的加密备份无法在 4.4 上恢复
恢复备份的问题
adb backup
使用(指定密码)在 4.3 上创建加密备份- 尝试在 4.4 上恢复
- 静默还原失败。
显示以下错误:
密码被认为是不正确的,即使它是:
W/BackupManagerService(774):无效的恢复数据;中止。
android - BackupAgentHelper not backing up data
This simple task has turned into a nightmare for me.
When requesting a backup Im doing adb shell bmgr backup my.package adb shell bmgr run
But I dont receive any messages in the cmd line, however in my logcat I recieve this: 12-22 20:44:46.781: V/BackupServiceBinder(21443): doBackup() invoked 12-22 20:44:46.786: D/BackupHelperDispatcher(21443): handling new helper 'mybackup'
When I reinstall the app I dont get any indication that it has been restored. When I call adb shell bmgr restore my.package
The cmd shows me the following text: restoreStarting: 2 packages restoreFinished: 0 done
Im using the backup in a pro and lite version of an app which both inherit from one library. They all have the backupagent class in manifest, allowbackup is set to true and the backup key meta data tag is also there.
Oh and lastly, my class:
What am I doing wrong? Im trying to backup & restore the default shared prefs.