Android 活动之间显示锁屏
我正在开发一个可以启动其他android应用程序的kiosk应用程序。它运行在锁屏的顶部。我看到的问题是锁屏在活动之间短暂显示。我们必须锁定平板电脑,这样解锁就不是一个选项 我已经能够用一个超级简单的案例来重现这一点。这两项活动几乎完全相同。该应用程序是一个设备管理员,可以显示在键盘上方。我也尝试过根本不使用Android 活动之间显示锁屏,android,android-activity,lockscreen,Android,Android Activity,Lockscreen,我正在开发一个可以启动其他android应用程序的kiosk应用程序。它运行在锁屏的顶部。我看到的问题是锁屏在活动之间短暂显示。我们必须锁定平板电脑,这样解锁就不是一个选项 我已经能够用一个超级简单的案例来重现这一点。这两项活动几乎完全相同。该应用程序是一个设备管理员,可以显示在键盘上方。我也尝试过根本不使用finish(),但这并没有解决问题 public class MainActivity extends Activity { private Handler h = new Ha
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();
}
});
}
});
}
}
如何启动其他活动而不首先短暂显示锁屏
如何启动其他活动而不简要显示
锁屏优先
实现这一点的更简单方法是在启动activity-1
之前运行一个虚拟(普通视图)活动。这样,当您完成activity-1
时,dummy activity
将接管,然后activity-2
将进入前台
您(很可能)还需要告诉系统不要提供窗口动画。通过将以下内容添加到应用程序主题中实现:
<item name="android:windowAnimationStyle">@null</item>
@null
您是否尝试过在startActivity()之后使用overridePendingTransition(0,0)标记“活动”或“否”动画。这样可以防止新活动“滑入”,而只是立即启动它们。我不确定是不是修好了,但值得一看。我已经试过了。这似乎没什么区别。这也许行得通。我会把我的发现发回来。所以我还没有真正测试过这个,但是:根据之前的测试,这个是行不通的。我从这两项活动中完全删除了finish()
。这将产生与虚拟活动相同的效果,因为堆栈中仍然有活动。锁屏仍然会短暂地显示出来。@Randy我没有亲自尝试就提出了这种方法。道歉。它不起作用。我还尝试了什么:在启动activity-2之前显示屏幕大小的PopupWindow,并使用键入_TOAST
(在启动activity-2之后立即将其删除),这是行不通的。使用窗口管理器的addView(…)
和类型为\u SYSTEM\u的警报集添加屏幕大小的不透明视图不起作用。@Randy所起的作用是使用片段
代替活动
。由于您在使用片段时从不离开某个活动,因此锁定屏幕不会干扰—甚至不会短暂地干扰。我知道从活动到片段并不是一个直接的决定(对于任何规模的应用程序)。但是,你可以考虑这样做作为最后的手段——万一没有其他东西出现。“兰迪只是想知道,当你没有设置<代码>安全< /代码>锁(比如模式锁等)时,锁屏会显示出来吗?如果没有,您可能可以设置非安全解锁机制,如滑动锁
,并将您的应用程序声明为主屏幕应用程序:使用category.home
和category.DEFAULT
作为意图过滤器。这样,您将限制用户访问android的默认启动器-我猜这是安全锁的目的。