我在我的项目中定义了一个新 Activity ,但我在全屏方面遇到了一些问题。
我在 list 文件中这样定义:
<activity android:name=".Test"
android:launchMode="singleInstance" android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
.............
>
如果我从另一个 Activity 开始 Activity ,我得到了所需的全屏。问题是当我从 BroadcastReceiver 启动此 Activity 时 - 我需要在 BroadcastReceiver 中打开此 Activity ,如下所示:
public void onReceive(Context context, Intent intent) {
Intent test = new Intent(context, Test.class);
test.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(test);
}
我也这样试过:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.test);
}
如果 Activity 从我的 BroadcastReciever 开始,则不会全屏显示。
为什么我在这种情况下没有全屏显示? Activity创建可见后,有什么方法可以要求全屏吗?
最佳答案
我喜欢这个问题。我省略了一种方法来添加问题文本——我认为它不相关。因为我希望此 Activity 拦截(不使用react)主页按钮按下,因此我重写了 onAttachedToWindow() 方法,如下所示:
public void onAttachedToWindow() {
getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
这就是问题所在。有时,因此,我的 Activity 没有全屏显示。为了解决这个问题,我不知道这是否是最好的方法,我在这段代码中添加了延迟,如下所示:
public void onAttachedToWindow() {
handler.sendEmptyMessageDelayed(100,100);
super.onAttachedToWindow();
}
和处理程序:
public boolean handleMessage(Message msg) {
getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
}
这解决了我的问题。我希望这对某人有所帮助!
关于android - Activity 未全屏显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9369144/