如何申报和调用此活动?

时间:2015-01-29 03:47:12

标签: android android-activity android-manifest

我有一个特殊的活动(此活动不在AndroidManifest.xml中的声明包中),它是这样的:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.rtk.mediabrowser"
    android:installLocation="auto"
    android:versionCode="1"
    android:versionName="1.0" >


        <activity android:name="com.skyworth.mediabrowser.media.NewMediaBrowser" 
            android:configChanges="orientation|keyboardHidden|keyboard" android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.NewMediaBrowser" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

    </application>

</manifest>

这个AndroidManifest.xml由我简化,您可以看到,我声明的包是com.rtk.mediabrowser,但我的活动在包com.skyworth.mediabrowser.media中。

当我使用这样的代码来调用此活动时,它无法找到此活动:

componetName = new ComponentName("com.rtk.mediabrowser",
            "com.skyworth.mediabrowser.media.NewMediaBrowser");

我必须将活动移至com.rtk.mediabrowser吗?或者我的代码有问题?

2 个答案:

答案 0 :(得分:0)

我认为ComponentName需要&#34;动作android:name =&#34; android.intent.action.MAIN&#34; &#34;

请添加此代码&#34; intent-filter&#34;。

答案 1 :(得分:0)

componetName = new ComponentName("com.skyworth.mediabrowser.xxx",
        "com.skyworth.mediabrowser.media.NewMediaBrowser");

=&GT;

componetName = new ComponentName("com.skyworth.mediabrowser.xxx",
        "com.skyworth.mediabrowser.meida.NewMediaBrowser");

它会起作用,你找到了不同的吗? meida 拼写错误