我正在实现一个信息亭模式应用程序,我已经成功地使应用程序全屏没有状态栏外观4.3但无法隐藏4.3和4.4中的状态栏,因为当我们向下滑动屏幕顶部时状态栏出现.
我试图让它全屏显示
可能重复但未找到具体解决方案
最后我想要的是,如何在活动中永久隐藏状态栏?在android 4.3,4.4,5,6versions中
我试过的建议在这里,建议在此情况下,建议在这里,我已经在我的基本活动注释掉onAttachedToWindow().我有两个活动继承自这个类BaseActivity.一个运行,一个不运行.有什么区别?我的目标SDK是19; 将它改为12没有区别.这是我的onCreate for BaseActivity:
@Override
protected void onCreate(Bundle savedInstanceState) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onAttachedToWindow();
super.onCreate(savedInstanceState);
....
}
Run Code Online (Sandbox Code Playgroud)
当导航到第二个活动时,单步执行代码,它会通过onCreate(),onResume(),然后崩溃.
可能是什么问题呢?
堆栈跟踪:
06-26 13:41:57.963 28667-28667/com.assistek.ediary E/AndroidRuntime? FATAL EXCEPTION: main
Process: com.assistek.ediary, PID: 28667
java.lang.IllegalArgumentException: Window type can not be changed after the window is added.
at android.os.Parcel.readException(Parcel.java:1550)
at android.os.Parcel.readException(Parcel.java:1499)
at android.view.IWindowSession$Stub$Proxy.relayout(IWindowSession.java:903)
at android.view.ViewRootImpl.relayoutWindow(ViewRootImpl.java:5301)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1507)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254) …Run Code Online (Sandbox Code Playgroud) 我正在使用锁屏应用程序,我需要禁用下拉屏幕顶部的通知/状态栏的功能.有一个名为Holo Locker的应用程序,这个应用程序的作用是当用户从屏幕顶部向下拉时,它只是将条形设置回到屏幕顶部并且无法将抽屉拉下来.
我不知道从哪里开始.任何帮助都会很棒!谢谢!
我创建一个锁屏应用程序,我需要禁用一个主页按钮,所以如果该手机被盗,该手机无法访问..我的锁屏是一个全屏活动..我使用此代码禁用主页按钮,但它给了我一些bug.这是代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public void onAttachedToWindow()
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return false;
}
Run Code Online (Sandbox Code Playgroud)
该代码给了我一些像通知/状态区域的错误,即使我在全屏模式下的活动仍然可以访问,如果我关闭我的显示并再次打开它..错误是这样的:
第一次申请开始:(仍然没问题)

从电源按钮关闭屏幕并再次打开后:

主要问题是在锁屏上..当仍然可以访问通知区域时,锁屏无用..
任何想法如何解决这个?请帮忙..
当我按下结束键按钮时,我也遇到了同样的问题.
android android-manifest android-layout android-notifications
我上传了一个Android应用程序到市场,由于某种原因,用户收到此错误.
java.lang.IllegalArgumentException: Window type can not be changed after the window is added.
at android.os.Parcel.readException(Parcel.java:1331)
at android.os.Parcel.readException(Parcel.java:1281)
at android.view.IWindowSession$Stub$Proxy.relayout(IWindowSession.java:664)
at android.view.ViewRootImpl.relayoutWindow(ViewRootImpl.java:3594)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1193)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2450)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4444)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
我很确定我从未WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG在其他帖子中引用过.但是,我有一个在WindowManager.LayoutParams.TYPE_PHONE和之间切换的窗口WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY.这似乎可能是错误.我宁愿不改变它,因为它需要我有两个窗口而不是一个.提前致谢!