这两天在学习做Android
看到广播和服务这里 遇到些问题请教下功能描述 开机自动启动软件 实现短信监听
问题一 
   开机自动启动以实现 实现具体如下  Java代码public class myBroadcase extends BroadcastReceiver { @Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub



/**
 * 广播
 * */
Log.d("myAndroid", "broadcast start");
Intent mBootintent = new Intent(context,null);
mBootintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(mBootintent);

/**
 * 启动服务
 * */
Log.d("myAndroid", "service start");
Intent serviceInt = new Intent();
serviceInt.setAction("com.example.androidprj.MyService");
context.startService(serviceInt);
}
}XML配置
<receiver android:name="myBroadcase">            
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
                <category android:name="android.intent.category.HOME"/>
            </intent-filter>
</receiver>问题在于 系统加载完成后可以跳入到我的Demo页面
但是 启动服务的代码未执行 是为什么?

解决方案 »

  1.   

    Intent serviceInt = new Intent();
            serviceInt.setAction("com.example.androidprj.MyService");
            context.startService(serviceInt);改:Intent serviceInt = new Intent(context, MyService.class);
    context.startService(serviceInt);看看
      

  2.   

    试过了 不行 现在关键是不明白 为什么 广播监听 能实现 可以开机自动运行
    但是 广播类中的Java代码没有 实现
      

  3.   

    你是如何判断有开机启动的?
    有启动的话就会执行代码,代码里面有Log.d("myAndroid", "broadcast start");这个是否有输出?如果有输出的话,建议你把启动服务的这段代码换到Log.d("myAndroid", "broadcast start");前面去。
      

  4.   

    我在虚拟机里 进入系统 就会自动切入到我的 Demo页面
    所以说 自动启动时成功的
    但是 看不到log信息?不知道为什么
      

  5.   

    去掉<category android:name="android.intent.category.HOME"/>
    就可以开机启动了
      

  6.   

    你在哪个demo activity中再去起那个service。
      

  7.   

            Intent mBootintent = new Intent(context,null);
            mBootintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
            context.startActivity(mBootintent);
    这个干什么的呢
      

  8.   

    lz,你确定你有开机重启吗?还有,你的Demo页面确定在配置文件中没有写  
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    貌似有这两句也会启动Demo。
    应该是根本就没有运行Broadcase,因为这里面会报错!log里面可以看到!你的 
    Intent mBootintent = new Intent(context,null);
    没有指明哪个Activity.