现在的位置: 首页 > 综合 > 正文

adb 传送 intent boolean extra value

2014年02月02日 ⁄ 综合 ⁄ 共 695字 ⁄ 字号 评论关闭


最近想用命令行给 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



抱歉!评论已关闭.