在外部应用程序中保持屏幕打开
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);
}
}
我想在 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);
}
}