Lockscreen отображается между действиями
Я работаю над приложением киоска, которое может запускать другие приложения для Android. Он работает поверх блокирующего экрана. Проблема, которую я вижу, заключается в том, что lockscreen отображается кратко между действиями. Мы должны держать планшет заблокированным, поэтому разблокировка не является вариантом.
Я смог воспроизвести это с помощью супер простого случая. Оба действия почти идентичны. Приложение является администратором устройства и может отображаться над клавиатурной защитой. Я также попытался не использовать finish()
вообще, но это не устранило проблему.
public class MainActivity extends Activity {
private Handler h = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bneg1 = (Button) findViewById(R.id.bneg1);
bneg1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
h.post(new Runnable() {
@Override
public void run() {
Intent i = new Intent(MainActivity.this, SecondActivity.class);
startActivity(i);
finish();
}
});
}
});
}
}
Как я могу запустить другое действие без его кратковременного отображения экрана блокировки?
Ответы
Ответ 1
Как я могу запустить другое действие без его кратковременного отображения сначала заблокировать экран?
Более простой способ достичь этого будет состоять в том, что перед запуском activity-1
будет запущен фиктивный (простой просмотр). Таким образом, когда вы закончите activity-1
, dummy-activity
возьмет верх, а затем activity-2
выйдет на передний план.
Вы, скорее всего, также должны будете сообщить системе, чтобы она не предоставляла анимацию окна. Сделайте это, добавив это в свою тему приложения:
<item name="android:windowAnimationStyle">@null</item>