Intent_Filter Action在AndroidManifest中不起作用

时间:2010-10-14 07:54:11

标签: android action android-manifest intentfilter

我有一个活动,它也与自制服务的特定广播有关。 我注意到,当我将其作为动作添加到我的Androidmanifest文件时,应用程序实际上不会在调试时启动。 活动也是我的主要活动:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

但是当我向它添加我自己的额外动作时,它根本不会接收广播,并且在调试时它不会自动启动????

<intent-filter>
   <action android:name="android.intent.action.MAIN" />
   <category android:name="android.intent.category.LAUNCHER" />
   <action android:name="development.android.service.musicServiceUpdate">
</intent-filter>

这里有什么想法错误或为什么我的活动不会播放广播? 是否可以为.MAIN操作指定两个操作?

/编辑:

尝试以下方法:

<activity android:name=".nowPlayingGUI"
                  android:label="@string/app_name"
                  android:screenOrientation="portrait"
                    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                    android:launchMode="singleTask">    
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".nowPlayingGUI">
            <intent-filter>
                <action android:name="development.android.service.musicServiceUpdate"></action>
            </intent-filter>
        </receiver>

那不会起作用,会抛出:

10-14 11:57:04.412:ERROR / AndroidRuntime(11947):java.lang.RuntimeException:无法实例化接收器development.android.myPlayer.nowPlayingGUI:java.lang.ClassCastException:development.android.myplayer.nowPlayingGUI

10-14 11:57:04.412:ERROR / AndroidRuntime(11947):在android.app.ActivityThread.handleReceiver(ActivityThread.java:2520)

3 个答案:

答案 0 :(得分:3)

我刚刚遇到同样的问题。尝试将该intent-filter中的操作顺序更改为:

<intent-filter>
   <action android:name="development.android.service.musicServiceUpdate">
   <action android:name="android.intent.action.MAIN" />
   <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

答案 1 :(得分:0)

每个意图过滤器只能有一个操作(但您可以有多个类别)。改为添加额外的意图过滤器。

答案 2 :(得分:0)

您是否在androidmanifest.xml中添加了标记

假设你有一个活动和一个广播接收器,我认为你的清单xml会在你的app标签中包含类似的内容:

    <activity android:name=".Main"
              android:label="@string/app_name">
        <intent-filter>
              <action android:name="android.intent.action.MAIN" />
              <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <receiver android:name =".myreceiver">
           <intent-filter>
              <action android:name=development.android.service.musicServiceUpdate />
         </intent-filter>
    </receiver>