我在一个可以启动其他Android应用程序的自助服务终端应用程序上工作。它运行在锁屏顶部。我看到的问题是锁屏在活动之间短暂显示。我们必须锁定平板电脑,因此解锁不是一种选择。
我能用一个超级简单的案例重现这个。这两项活动几乎相同。该应用程序是设备管理员,可以显示在键盘锁上方。我也尝试过根本不使用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();
}
});
}
});
}
}
如果没有先短暂显示锁屏,我该如何启动其他活动?
答案 0 :(得分:4)
如果没有简单地显示其他活动,我怎么能启动它 锁屏第一?
实现此目标的更简单方法是在启动activity-1
之前运行虚拟(纯文本视图)活动。这样,当您完成activity-1
后,dummy-activity
将接管,然后activity-2
进入前台。
您(很可能)还需要告诉系统不要提供窗口动画。通过将此添加到您的应用程序主题来执行此操作:
<item name="android:windowAnimationStyle">@null</item>