Android 设备引导完成后启动服务

Android 设备引导完成后启动服务,android,service,broadcastreceiver,Android,Service,Broadcastreceiver,我正在做一个应用程序,在这个应用程序中,我想在设备启动完成时拨打一个号码。我的代码如下: @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub System.out.println("**inside onRecevier"); Intent serviceIntent = new Inte

我正在做一个应用程序,在这个应用程序中,我想在设备启动完成时拨打一个号码。我的代码如下:

 @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        System.out.println("**inside onRecevier");

        Intent serviceIntent = new Intent();
        serviceIntent.setAction("com.test.app.TestService");
        context.startService(serviceIntent); 

   }
首先,我创建了广播接收器。我在清单文件中注册了此收件人,如下所示:

<receiver android:name="TestReceiver">
        <intent-filter>
             <action android:name="android.intent.action.BOOT_COMPLETED" />
             <category android:name="android.intent.category.HOME" />
        </intent-filter>    
    </receiver> 
当我在启动应用程序后尝试启动设备时,强制关闭。如何在android中做到这一点??
Thanx提前

将您的onReceive更改为此

@Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        System.out.println("**inside onRecevier");

        Intent serviceIntent = new Intent(context, TestService.class);
        context.startService(serviceIntent); 

   }

有各种各样的原因可以让你接近原力。判断哪一个的最好方法是查看日志。它应该准确地告诉您引发了什么异常,并提示您如何解决问题。

在从服务启动活动之前,您需要添加新的任务标志:

Intent call = new Intent(Intent.ACTION_CALL,Uri.parse("tel:+5555"));
call.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(call);
说明:

请注意,如果此方法是从活动外部调用的 上下文,则意图必须包括标志\u活动\u新任务 发射旗。这是因为,没有从现有的 活动,则没有要放置新活动的现有任务 因此,它需要被置于自己的独立任务中

此外,您必须拥有以下权限:

正如Waqas所提到的,您最好从您的
onReceive
开始服务,例如:

 Intent serviceIntent = new Intent(context, TestService.class);
 context.startService(serviceIntent); 

确保你已经完成了我所说的所有工作,如果你仍然有问题,那么如果你编辑你的问题并从强制关闭中粘贴日志将很有帮助。

请发布异常的描述和stacktrace。这不是真正的答案,更应该作为对问题的评论发布。
 Intent serviceIntent = new Intent(context, TestService.class);
 context.startService(serviceIntent);