2017-04-05 80 views
3

我的应用程序有一个启动画面(无法避免它,因为它是品牌的原因)。如何在Android中的应用程序在后台显示启动画面?

我想掩盖用户界面,并在后台显示启动画面(如银行应用程序那样)。

我应该为MainActivity中的视图覆盖onPause()和onResume()吗?

清单:

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".SplashActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/title_activity_main" 
     android:theme="@style/AppTheme.NoActionBar"></activity> 
</application> 

飞溅活动: 的onCreate()

setContentView(R.layout.splash_layout); 
new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      /* Create an Intent that will start the Main-Activity. */ 

      Intent intent = new Intent(this, MainActivity.class); 
      startActivity(intent); 
      finish(); 
     } 
    }, SPLASH_DISPLAY_LENGTH); 
} 

MainActivity():仅显示文本和按钮布局

的onCreate():

setContentView(R.layout.example_view); 

现在,当我的应用程序在后台,当我按下菜单按钮可以看到在我的栈的应用程序列表中,我应该看到splashview(xml文件)不是deafult行为即MainActivity布局。

一个我尝试了的事情是增加

getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, 
       WindowManager.LayoutParams.FLAG_SECURE); 

这确实掩盖了应用程序时,它是在背景,白色屏幕,但我想显示启动视图时,应用程序是在后台。

我知道所有的iOS银行应用程序都有这个功能。

编辑enter image description here

如果你看到在后台Twitter的应用程序(例),我想掩盖与闪屏应用程序视图。现在使用FLAG_SECURE可以帮助我用白色屏幕屏蔽屏幕,但我想显示飞溅布局而不是白色屏幕。

  • 如果从iOS设备看到下面的图片 - Discover应用程序(例如)口罩闪屏的应用程序,这可以在Android做些什么呢?

enter image description here

+0

你想再次打开活动一次重新打开应用?如果没有,你可以做的最好的事情就是在'onPause()'方法中调用'finish()'。 –

+0

@不,我编辑了我的问题以获得更好的理解。 – DroidDev

回答

2

可以这样在Android上做了什么?

不直接,AFAIK。

我应该为MainActivity中的视图覆盖onPause()和onResume()吗?

可能不是。虽然您可以更改有你的UI:

  • 这些方法被调用其他原因(例如,当用户点击在多窗口模式的另一个窗口,当你启动另一个你的活动)

  • 这可能是太晚了对于当截图被采取

+0

整体原因是为了确保应用程序,当它在后台显示启动画面,但因为我没有看到任何其他解决方案 - (使用下面的方法只是隐藏在背景中的白色空屏幕的视图,这是我想要的部分) getWindow()。setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);' – DroidDev

+1

@ User54321:'FLAG_SECURE'将处理安全部分,尽管[它有一些泄漏](https://commonsware.com /blog/2016/06/06/psa-flag-secure-window-leaks.html)。不过,我不知道如何定制该屏幕。 – CommonsWare

相关问题