方法一:使用PowerManger的一种锁的机制 Wake Lock
需要权限:
public class KeepScreenOnActivity extends AppCompatActivity {
PowerManager powerManager = null;
PowerManager.WakeLock wakeLock = null;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_util_activity);
}
@SuppressLint("InvalidWakeLockTag")
@Override
protected void onResume() {
super.onResume();
powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "MyWakeLock");
if (wakeLock != null)
wakeLock.acquire();
}
@Override
protected void onPause() {
super.onPause();
if (wakeLock != null)
wakeLock.release();
}
}
方法二:Android保持屏幕常亮: 通过修改window的flag属性
public class KeepScreenOnActivity2 extends AppCompatActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.main_util_activity);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.toolbar_menu, menu);
return super.onCreateOptionsMenu(menu);
}
}