广播接收器根据意图的动作名称区分呼叫原因

时间:2013-06-24 19:30:24

标签: android android-intent broadcastreceiver android-pendingintent intentfilter

我的应用程序广播接收器出现问题。

我有一种情况,我想通过3种不同的原因调用广播接收器,第一个电话状态改变,第二个,基于计时器,第三个在启动完成。然后根据调用广播接收器的原因,我希望能够做一些事情。

下面是我的接收器的Android清单:

    <receiver android:name="com.example.mobileraptor.MyPhoneListener" >
        <intent-filter>
            <action android:name="android.intent.action.PHONE_STATE" />
            <action android:name="android.intent.action.BOOT_COMPLETED" />

            <action android:name="com.example.mobileraptor.TimerTriggered" />

        </intent-filter>
    </receiver>

以下是我声明TimerTriggered意图的地方:

PendingIntent pintent = PendingIntent.getBroadcast( this, 0, new Intent("com.example.mobileraptor.TimerTriggered"), 0 );
    AlarmManager manager = (AlarmManager)(this.getSystemService( Context.ALARM_SERVICE ));

    manager.setInexactRepeating( AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), AlarmManager.INTERVAL_HOUR , pintent );

问题是,一旦应用程序想要启动它就会崩溃。但如果我评论这条线: 动作android:name =“com.example.mobileraptor.TimerTriggered
那我的申请很好。

我定义的操作名称有什么问题。

0 个答案:

没有答案