我试图从 BroadcastReceiver 类调用推送通知后台服务,但我的应用程序崩溃了。代码如下:
public class AlarmReceiver extends BroadcastReceiver {
static int count=1;
@Override
public void onReceive(Context context, Intent intent) {
Intent myIntent=new Intent(context,NotifyService.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myIntent);
}
}
list 条目:
<receiver android:name=".AlarmReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<service android:name=".NotifyService">
</service>
错误:
05-24 15:17:00.042: ERROR/AndroidRuntime(424): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.alarm/com.android.alarm.NotifyService}; have you declared this activity in your AndroidManifest.xml?
当我通过 Activity 调用此服务时,它正在工作,但我的目标是从 BroadcastReceiver 调用此服务。
最佳答案
AlarmReceiver
正在调用 startActivity()
,而不是 startService()
。您可以使用 startService()
启动服务;您可以使用 startActivity()
启动 Activity 。
此外,服务不需要(或使用,据我所知)FLAG_ACTIVITY_NEW_TASK
。
关于android - 从BroadcastReceiver调用后台服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2896080/