Android BroadcastReceiver之开机监听
16lz
2021-01-22
接收开机广播,在广播接收者中启动勒索的Activity
* 清单文件中配置接收开机广播
<receiver android:name="com.itheima.lesuo.BootReceiver">
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
* 权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
定义广播接收者
@Override
public void onReceive(Context context, Intent intent) {
//开机的时候就启动勒索软件
Intent it = new Intent(context, MainActivity.class);
context.startActivity(it);
}- 以上代码还不能启动MainActivity,因为广播接收者的启动,并不会创建任务栈,那么没有任务栈,就无法启动activity
手动设置创建新任务栈的flag
it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
<receiver android:name="com.cy.lesuo.BootReceiver">
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//启动勒索应用
Intent it = new Intent(context, MainActivity.class);
//创建新的任务栈,因为这行代码执行时,没有任务栈
it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(it);
}
}
参考:Android BroadcastReceiver
更多相关文章
- Android代码性能优化技巧
- Android公钥私钥及代码详细解读
- android OSChina 客户端源代码剖析
- android代码混淆 GSON完满解决
- Android开源代码解读の地图照片应用Panoramio的实现详解(六)
- 在app引擎端点的启动时执行代码
- javaScript函数中执行C#代码中的函数
- 反编译APK 得到JAVA代码和资源文件源码
- java.io.File vs java.nio.Files这是新代码中的首选?