如何使用自定义Intent从eclipse启动android活动

Mik*_*yer 10 eclipse android adb android-intent

我想,出于多个测试目的,从Eclipse开始我的android活动,其中包含有关意图的特定数据(例如,要加载的文件名等额外数据).我可以在菜单中提供这个吗?

  • 在运行配置中,3个选项卡中没有任何内容可以提供任何参数
  • 我可以更改资源文件中的一些参数,但我担心我可能会泄漏资源进入最终的应用程序.
  • 可以在adb中执行此操作:请参见此处,但它目前无法与Eclipse中的F11启动命令相关联,这对于同时重新编译和重新启动非常有用.

Aeg*_*gis 7

如果你还在使用eclipse,你可能需要创建一个带有自定义任务的简单ant脚本来执行测试.ADB shell有一个命令来启动活动,您也可以在其中指定extra

am [start|instrument]

am start [-a <action>] [-d ]
[-t <mime_type>] [-c <category> [-c <category>] ...]
[-e <extra_key> <extra_value>
[-e <extra_key> <extra_value> ...]
[-n <component>] [-D] [<uri>]

am instrument [-e <arg_name> <arg_value>] [-p <prof_file>] [-w] <component>
Run Code Online (Sandbox Code Playgroud)

你会像这样传递它们:

am start -a android.intent.action.VIEW -c android.intent.category.DEFAULT -e foo bar -e bert ernie -n org.package.name/.MyCustomActivity
Run Code Online (Sandbox Code Playgroud)

PS不要忘记活动前的点.

这可以转换为你应该放在ant脚本中的ant目标.

<target name="run">
    <exec executable="adb">
        <arg value="shell"/>
        <arg value="am"/>
        <arg value="start"/>
        <arg value="-a"/>
        <arg value="android.intent.action.MAIN"/>
        <arg value="-e"/>
        <arg value="extra_key extra_value"/>
        <arg value="-n"/>
        <arg value="{package.name}/{activity}"/>
    </exec>
</target>
Run Code Online (Sandbox Code Playgroud)

你可以像这样执行: ant debug install run

如何从eclipse运行ant文件请参阅: