我有一个活动,它也与自制服务的特定广播有关。 我注意到,当我将其作为动作添加到我的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)
答案 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>