我正在尝试实现自定义backupAgentHelper来备份我的应用程序的数据库文件.我已多次浏览文档,但每当我尝试强制备份时,都不会调用backupAgentHelperon Create/onBackup/onRestore.
Manifest在申请中有以下内容:
android:allowBackup="true"
android:backupAgent="myBackupHelper"
android:restoreAnyVersion="true"
Run Code Online (Sandbox Code Playgroud)
和元数据
<meta-data
android:name="com.google.android.backup.api_key"
android:value="<my-api-key>" />
Run Code Online (Sandbox Code Playgroud)
myBackupHelper:
public class myBackupHelper extends BackupAgentHelper{
public static String DATABASE_NAME = "db.dat";
@Override
public void onCreate(){
log.d("Backup oncreate called");
FileBackupHelper hosts = new FileBackupHelper(this, this.getExternalFilesDir(DATABASE_NAME).getAbsolutePath());
addHelper(DATABASE_NAME,hosts);
}
@Override
public void onBackup(ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) {
log.d("backup onbackup called");
try {
//class is the lock since we are using static synchronized methods to read/write
synchronized (DBManager.class) {
super.onBackup(oldState, data, newState);
log.d("Backedup");
}
} …Run Code Online (Sandbox Code Playgroud) 我在单个 AWS 实例上运行服务器(使用 Tornado python),并且我遇到了 websocket 延迟的峰值。
分析从 websocket 消息发送到客户端的往返时间,然后客户端立即将 ack 消息发送回服务器,到服务器收到 ack 消息时平均产生 <.1 秒,但是我有时注意到它最多 3 秒。注意:在本地运行服务器时没有峰值。
这可能是什么原因或解决方法?我查看了 CPU 使用率,最多只能达到 40%。峰值与高流量(通常是 2 或 3 个客户端)无关,并且客户端的互联网似乎很好。我发现很难相信实例会以如此低的使用率超出容量。