2011-12-23 102 views
2

我想要达到的是,除非用户按下其中一个提供的按钮,否则用户不能离开该活动。
我已经抓住了主页和后退按钮,但是当我尝试删除状态栏时,我的问题就开始了。 我想有下列之一: 如何检查状态栏在Android中是否可见

  • 状态栏在活性2隐形总是
  • 状态栏无法访问,它是可见的,但你不能激活它(见呼入电话屏幕为例)
  • 如果我选择解决方案1,这是不可能的,如果我的应用程序正在运行,并且Activity1显示状态栏,则Activity2显示在状态栏下,状态栏覆盖Activity2的顶部
    除了从Activity2开始另一个应用程序,则Activity2不显示状态栏。 Status bar overlays Activity2 No Status Bar visible here 我在做什么错? AndroidManifest.xml中的

    部分:

     <activity 
         android:label="@string/app_name" 
         android:launchMode="standard" 
         android:name=".Activity1" 
         android:screenOrientation="portrait" 
         android:theme="@android:style/Theme.Black.NoTitleBar" > 
         <intent-filter > 
          <action android:name="android.intent.action.MAIN" /> 
         </intent-filter> 
        </activity> 
        <activity 
         android:label="@string/app_name" 
         android:launchMode="standard" 
         android:name=".Activity2" 
         android:noHistory="true" 
         android:screenOrientation="portrait" 
         android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > 
         <intent-filter > 
          <category android:name="android.intent.category.HOME" /> 
          <category android:name="android.intent.category.DEFAULT" /> 
          <category android:name="android.intent.category.MONKEY" /> 
         </intent-filter> 
        </activity> 
    
    +0

    你想要什么不适用于所有设备。例如,在平板电脑上,您无法摆脱系统栏。在Kindle Fire上,出于类似的原因,您无法摆脱菜单栏。 – CommonsWare 2011-12-23 14:59:48

    +0

    目前只能在手机上使用。如何阻止状态栏,就像Android有来电时一样? – Michael 2011-12-23 15:01:55

    +0

    AFAIK,SDK应用程序不能这样做。 Android的指导原则是将控制权掌握在用户的手中。无论出于何种原因,你想要做的一个明显的指导原则是从用户中删除控制权。这些原则不会特别好地共存。 – CommonsWare 2011-12-23 15:12:08

    回答

    1

    我不得不开始我的活动在android系统是有帮助的:launchMode = “singleInstance” 和在OnAttachedToWindow()我不得不调用this.getWindow()。setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 现在,即使同一应用程序中的其他活动确实显示状态栏,状态栏也不会显示。

    2
    +0

    这不是问题所在。我正在使用默认主题。但不知何故,如果我从Activity1移动到Activity2,状态栏仍然会显示。 – Michael 2011-12-23 15:10:14

    +0

    是否在转移到activity2后关闭了activity1? – yonilx 2011-12-23 15:13:27

    +0

    这确实帮了我一点点。我不得不在'android:launchMode =“singleInstance”'和'OnAttachedToWindow()'我必须调用'this.getWindow()。setType(WindowManager.LayoutParams.TYPE_KEYGUARD);' – Michael 2012-01-05 11:33:23