这两天在学习做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页面
但是 启动服务的代码未执行 是为什么?
看到广播和服务这里 遇到些问题请教下功能描述 开机自动启动软件 实现短信监听
问题一
开机自动启动以实现 实现具体如下 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页面
但是 启动服务的代码未执行 是为什么?
serviceInt.setAction("com.example.androidprj.MyService");
context.startService(serviceInt);改:Intent serviceInt = new Intent(context, MyService.class);
context.startService(serviceInt);看看
但是 广播类中的Java代码没有 实现
有启动的话就会执行代码,代码里面有Log.d("myAndroid", "broadcast start");这个是否有输出?如果有输出的话,建议你把启动服务的这段代码换到Log.d("myAndroid", "broadcast start");前面去。
所以说 自动启动时成功的
但是 看不到log信息?不知道为什么
就可以开机启动了
mBootintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(mBootintent);
这个干什么的呢
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
貌似有这两句也会启动Demo。
应该是根本就没有运行Broadcase,因为这里面会报错!log里面可以看到!你的
Intent mBootintent = new Intent(context,null);
没有指明哪个Activity.