Java 定时器触发后唤醒Android屏幕

Java 定时器触发后唤醒Android屏幕,java,android,eclipse,oop,timer,Java,Android,Eclipse,Oop,Timer,我如何让计时器触发一种方法来唤醒安卓设备的屏幕 我插入以下内容: final Window win = getWindow(); win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON

我如何让计时器触发一种方法来唤醒安卓设备的屏幕

我插入以下内容:

final Window win = getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
          | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
          | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
进入

@Override
protected void onCreate(Bundle savedInstanceState) {
方法

此外,我在用户单击按钮后制作了一个计时器,该按钮运行以下程序:

final int interval = 3000; // 3 Seconds
Handler handler = new Handler();
Runnable runnable = new Runnable(){
      public void run() {
           Toast.makeText(getApplicationContext(), "Here", Toast.LENGTH_SHORT).show();


                }
            };
handler.postAtTime(runnable, System.currentTimeMillis()+interval);
handler.postDelayed(runnable, interval);
我希望能够单击Android设备的电源按钮,使其在3秒钟的时间间隔内休眠,并在启动run()后将其唤醒。 我应该调用什么来触发屏幕打开?

尝试添加到onCreate():

要释放屏幕锁定,请执行以下操作:

        KeyguardManager keyguardManager = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); 
        KeyguardLock keyguardLock =  keyguardManager.newKeyguardLock("TAG");
        keyguardLock.disableKeyguard();
添加到清单中:

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />

此方法还会立即打开屏幕:

PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock TempWakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP, "TempWakeLock");
TempWakeLock.acquire();
TempWakeLock.release();

谢谢,在实现了这一点之后,我试着运行一个计时器并释放屏幕锁,结果成功了!但是我应该采取什么步骤来唤醒屏幕呢?(我在计时器启动前关闭屏幕)
PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock TempWakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP, "TempWakeLock");
TempWakeLock.acquire();
TempWakeLock.release();