在外部应用程序中保持屏幕打开

Keep screen on in external applications

我想在 activity 的生命周期内一直打开屏幕。我们将其称为 Activity A。我通过设置

来实现
android:keepScreenOn="true"

在xml。这在大多数屏幕上都能完美运行。但是,Activity A 启动了 Activity B,它在应用程序的其他部分使用。有没有办法强制 Activity B 在从 Activity A 启动时保持屏幕打开?我读过我应该避免使用唤醒锁;我很好奇其他人对此有何看法。

您可以通过编程方式设置它:

     getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

如果您只想 Activity B 在从 Activity A 启动时保持屏幕亮着,您可以这样实现:

当 A 启动 B 时,在意图上发送一个额外的值,在 B 上,onCreate() 检查是否有发送的值,并且仅当它找到某些东西时才因为它来自 A。

    public class ActivityB extends Activity {
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_b);

        Bundle extras = getIntent().getExtras();
        if(extras != null) 
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);    
      }
    }