小编mol*_*may的帖子

onRestore没有为我的自定义BackupAgent调用

我的Android应用中有一些数据要备份和恢复.为此我创建了一个自定义实现BackupAgent.

在我的清单中包含了备份代理,如下所示

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:installLocation="auto"
    package="com.myapp"
    android:versionCode="14"
    android:versionName="1.13" >

    <application
        android:backupAgent="com.myapp.MyBackupAgent">

        <meta-data
            android:name="com.google.android.backup.api_key"
            android:value="my key" />
Run Code Online (Sandbox Code Playgroud)

我已经包含了备份服务api密钥,虽然我正在使用模拟器(Android 2.2)进行测试,但它并不是必需的,因为它使用本地备份传输.

为了进行备份和恢复的测试,我已经完成了以下操作:

  • 安装我的应用程序启动模拟器.
  • 启用备份

    adb shell bmgr enable true

  • 调用我的代码部分是调用BackupManager类中的dataChanged方法.

  • 手动启动备份操作

    adb shell bmgr run

  • 在日志中检查我的自定义BackupAgent的onBackup方法被调用.

  • 卸载应用程序
  • 重新安装该应用程序
  • 如果调用了onRestore方法,请检查日志.

问题是onRestore方法似乎没有被调用,我不知道为什么.重新安装应用程序或使用adb手动触发还原后,我在控制台中看到以下内容.

$adb shell bmgr restore com.myapp
restoreStarting: 2 packages
restoreFinished: 0
done
Run Code Online (Sandbox Code Playgroud)

和另一个在日志中

D/AndroidRuntime( 8259):
D/AndroidRuntime( 8259): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
D/AndroidRuntime( 8259): CheckJNI is ON
D/AndroidRuntime( 8259): --- registering native functions ---
D/BackupManagerService(   59): MSG_RUN_RESTORE observer=android.app.backup.IRestoreObserver$Stub$Proxy@450e16a8
V/LocalTransport(   59): start restore 1 …
Run Code Online (Sandbox Code Playgroud)

backup android restore android-backup-service

21
推荐指数
1
解决办法
2592
查看次数

垂直Linearlayout中的多个片段

我在我的应用程序中遇到以下问题.我想以特定顺序将多个片段添加到垂直LinearLayout中.

这是我的布局

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/scrollview"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:fillViewport="true" >
<LinearLayout 
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >
</LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)

这是我用来添加片段的代码.

Fragment fragment1 = MyFragment.newInstance(param1);
Fragment fragment2 = MyFragment.newInstance(param2);

FragmentManager fm = getSupportFragmentmanager();

fm.beginTransaction().add(R.id.content, fragment1, "fragment1").commit();
fm.beginTransaction().add(R.id.content, fragment2, "fragment2").commit();
Run Code Online (Sandbox Code Playgroud)

我每次都使用一个交易,所以我保证它们在屏幕上按顺序放置.

我的问题是,当方向改变并重新创建活动时,我无法确定它们是否会以相同的顺序出现在屏幕上.

有人经历过这个吗?我该如何解决这个问题?在LinearLayout中有两个布局,并且每个片段都有一个特定的ID,这样做无济于事,因为我必须添加的片段数量是不确定的(我只是使用数字2作为例子)

layout android fragment

6
推荐指数
1
解决办法
1592
查看次数

Robotframework与测试工具集成

是否有人知道任何正在进行的开源项目,它将机器人框架与负载测试工具(如磨床,jmeter,funkload等)集成在一起?

谢谢

testing load grinder robotframework

5
推荐指数
1
解决办法
3327
查看次数

在Android中覆盖对话框标题布局

我已经在我的Android应用程序中为对话框创建了一个自定义主题,我计划覆盖用于对话框标题的布局.我在标准的android中看到,Theme这个属性看起来像要修改的属性.

<item name="dialogTitleDecorLayout">@layout/dialog_title</item>
Run Code Online (Sandbox Code Playgroud)

但是当我试图在我的身上覆盖它时 Theme

<style name="Theme.Dialog.MyDialog" parent="android:Theme.Dialog">
    <item name="android:windowBackground">@android:color/black</item>
    <item name="android:dialogTitleDecorLayout">@layout/my_dialog_title</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我看到以下错误:

找不到与给定名称匹配的资源:attr'android:dialogTitleDecorLayout'

为什么我无法更改它,如何知道哪些属性可以更改,哪些属性不可更改?

layout android themes styles dialog

5
推荐指数
1
解决办法
1152
查看次数

如何检测ListView是否快速滚动

有没有办法检测ListView是否快速滚动?也就是说,我们可以知道用户何时按下并释放FastScroller?

android listview fastscroll

4
推荐指数
2
解决办法
1655
查看次数