2012-01-12 90 views
0

我在我的应用程序中运行使用服务的活动。因此,如果服务正在运行并且锁定键锁,我通过代码解锁并再次显示我的活动。为此,我在Activity的onReceive()方法中编写了代码。onResume()方法不从相同的活动调用

protected void onResume() 
{ 
    Log.d("Testing","ONRESUME OF HOME SCREEN"); 
    // only when screen turns on 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 
    super.onResume(); 
} 

但是,当我从我的活动转移到另一个活动(假设手机的主屏幕),以及锁定键后卫,这是解锁和展示我的活动。但是,如果我的活动显示并锁定了钥匙后卫,则无法解锁钥匙后卫,除非我手动解锁钥匙。

我没有得到什么问题。请帮忙....

+0

由于给出的描述不清楚问题,所以请详细说明你想做什么。 – jeet 2012-01-12 12:32:12

+0

假设我使用服务在特定时间段内展示了一项活动。该活动由一个图像和一个数字时钟组成。现在假设我的活动显示在手机主屏幕上,我的意思是它正在运行,并且我锁定了屏幕。所以我想自动解锁它,并再次显示我的活动。为此我写了上面的代码。 – 2012-01-12 12:36:26

+0

你是什么意思“Activity的onReceive()方法”。你知道什么是活动吗?活动没有onReceive()方法。 – Sameer 2012-01-12 12:42:35

回答

0

当您的活动控制事件线程时,会调用onResume。

如果您已锁定屏幕(手段开始进行这项活动的其他活动)的onResume不会被调用,因为活动事件将被解雇是:之后的onPause()的onStop()当你完成其他活动在此活动(屏幕)之上,然后调用onResume()和onStart()。

如果您的锁定屏幕是在同一活动中显示的视图组件,则不会调用任何活动生命周期方法。

+0

但是当我移动到另一个活动(假设手机主屏幕),然后锁定手机,它是解锁并只显示我的活动。那次它进入OnResume()方法。它正在打印日志。 – 2012-01-12 12:52:22

+0

,因为你正在按时间显示你的活动,当你开始一个活动,然后按照下列步骤行动 - > startactivity-> onCreate() - > onStart() - > onResume() – jeet 2012-01-12 12:55:52

+0

那么,我该如何解决这个问题。 – 2012-01-12 12:57:59