锁屏在活动之间显示

时间:2014-03-13 20:07:05

标签: android android-activity lockscreen

我在一个可以启动其他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();
                    }
                });
            }
        });
    }
}

如果没有先短暂显示锁屏,我该如何启动其他活动?

1 个答案:

答案 0 :(得分:4)

  

如果没有简单地显示其他活动,我怎么能启动它   锁屏第一?

实现此目标的更简单方法是在启动activity-1之前运行虚拟(纯文本视图)活动。这样,当您完成activity-1后,dummy-activity将接管,然后activity-2进入前台。

您(很可能)还需要告诉系统不要提供窗口动画。通过将此添加到您的应用程序主题来执行此操作:

<item name="android:windowAnimationStyle">@null</item>