如何从接收器启动活动作为单个新活动?

时间:2013-05-20 10:01:18

标签: android android-activity

我正在编写一个应用程序,需要在设备锁定时通过锁定屏幕显示活动。 我还有另一个问题要问如何检测设备是否被锁定或设备的锁定超时。如果每个人都知道请告诉我如何做到这一点。 Question Hyperlink

这是第二个问题。

我有一个主动(A)来启动服务。服务注册接收器以检查设备是否屏幕关闭。 当设备屏幕关闭时,活动(B)将显示在锁定屏幕上。 我禁用了键盘锁,并在我的活动关闭后重新启用以模拟此操作。

但是,如果主要活动(A)正在运行,无论是在屏幕上显示还是在暂停状态,当屏幕关闭且显示活动(B)时,我用{{1}关闭活动(B)后在活动(B)中,解锁设备后显示的主要活动(A)甚至主要活动(A)在设备关闭屏幕之前不会显示在屏幕上。

这是接收器中的代码

finish()

也许我的英语很难理解。

这是理想的流程

主要活动(A) - >用于启动服务的按钮 服务注册接收者 接收器检测屏幕是否关闭,启动activityB activityB - >按钮到@Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { Log.d("Receiver", "Screen ON"); } else { Intent i = new Intent(); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.setClass(context, activityB.class); context.startActivity(i); Log.d("Receiver", "Screen OFF"); } } - > show keyguard - >解锁 - >在设备锁定之前显示上一个视图/活动

然而 主动性(A) - >开始服务 - >服务注册接收者 - >按主页按钮以最小化所有正在运行的应用/活动 - >等待屏幕超时 - >接收器检测屏幕关闭 - >开始活动B - > close activityB - >解锁 - >主要活动(A)显示

我猜这个问题来自finish(),活动(B)作为一项任务开始,所以当主活动(A)运行时,关闭活动(B)将返回主活动(A)

P.S。如果我按后退按钮关闭主动(A),由于服务启动,当屏幕关闭时仍显示活动(B),当活动(B)关闭时,主动(A)显示。

非常感谢。

0 个答案:

没有答案