adb 传送 intent boolean extra value

来源:互联网 发布:linux配置gradle 编辑:程序博客网 时间:2024/06/18 10:33


最近想用命令行给 0xBench 发送 intent extra, 命令行如下:

    adb shell am start -n org.zeroxlab.zeroxbenchmark/.Benchmark -ez autorun true

adb 命令 help 提示的就是用

   --ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>


0xBench 中 org.zeroxlab.zeroxbenchmark.Benchmark.java 中接收 intent 的代码如下:

        Intent intent = getIntent();        Bundle bundle = intent.getExtras();        if (bundle != null) {            mAutoRun = bundle.getBoolean("autorun");            mCheckMath = bundle.getBoolean("math");
            ...
        }

我加入了一些 log, 结果让我非常吃惊

bundle.get("autorun") 的结果是: z (注意它把 -ez 认为是 -e z 了, 与adb help说明不符合)

autorun是:null


把命令行改为

adb shell am start -n org.zeroxlab.zeroxbenchmark/.Benchmark -e autorun true 

这次autorun是 "true", 注意是 String value, 而

 mAutoRun = bundle.getBoolean("autorun");
得到的结果还是 false


我想以后只有改0xBench源代码, 用 Boolean.valueOf() 把它矫正过来了


最后发现还是自己粗心的毛病

应该用 --ez, 而不是 -ez



原创粉丝点击