我希望能够在设备密码锁定时启动不属于我的应用的活动。如果可能的话,我怎么能这样做?
注意:我很清楚将getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
放在我的onCreate
活动中。但是,这不起作用,因为我没有开始自己的活动,而是在我的应用程序之外的第三方活动。
答案 0 :(得分:1)
覆盖功能
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
这将在解锁后显示您的活动。
答案 1 :(得分:1)
只有当实际开发人员通过覆盖您尝试在应用中打开的活动中的onAttachedToWindow()
方法编写代码时,才有可能。
如果没有,那么,很遗憾地说,但你没有选择做你想做的事情(就最近的API而言)
答案 2 :(得分:1)
如果您尝试通过锁定屏幕启动任何第三方应用,则无效。正如您自己观察到的那样,您需要设置窗口标记以确保通过锁定屏幕启动活动,无法确保来自其他第三方应用程序的活动也设置相同的标记。
如果您要构建一个功能包,其中每个功能只是一个不同的应用程序,那么您必须确保这些功能的所有入口点都设置此窗口标志。最好的方法是声明一个BaseActivity,它在创建时设置正确的标志,并让所有功能开发团队将其用作入口点的基类。