如果活动被立即重定向,如何隐藏活动

时间:2018-11-30 22:27:08

标签: android

我有一个欢迎活动,仅当用户未登录时才会显示。 我要做的是通过意图开始一项新的活动。 (我检查是否有用户登录,然后开始活动)。但是,有一瞬间,在重定向之前此活动仍然可见。有办法避免这种情况吗?

3 个答案:

答案 0 :(得分:0)

只需使用相同的Activity,然后对Fragment进行充气,结果:零延迟。

这也可以通过方法.setContentView()和两个XML布局来完成。

没有必要显示它,而用户却无所事事...

根据经验:跳过所有无用的复杂性(如其他建议)。

答案 1 :(得分:0)

我认为使用共享首选项来检查用户登录是否先登录,然后共享首选项值为true,并在每次启动后检查共享首选项。

注意:打开活动应为开始活动,如果为false,请检查开始活动中的用户,然后重定向欢迎屏幕。

例如应该会对你有帮助

https://www.androidhive.info/2012/08/android-session-management-using-shared-preferences/

答案 2 :(得分:0)

我说使用启动画面。将用户数据保存为共享首选项,然后在打开活动中进行检查。这应该是一个空白活动,仅包含共享的首选项代码,而xml中没有任何内容,可能只是一个空白的布局或空格,但是应该使用style,其中android:windowBackground是您的初始屏幕徽标。加载活动时,窗口背景有点像占位符。这样,总会有一个没有滞后的启动画面徽标。进行检查后,将用户定向到登录活动或家庭活动。离开前,请不要忘记finish();这项活动。

样式:

<style name="splash" parent="AppTheme.NoActionBar">
            <item name="android:windowBackground">@drawable/splash_wallpaper</item>
        </style>

在清单中应用主题:

<activity
            android:name=".activities.SplashActivity"
            android:theme="@style/splash">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

由于splash_wallpaper在不同的屏幕上可能看起来有所不同,因此请使用可绘制的xml来定义其引力。

splash_wallpaper.xml:

<?xml version="1.0" encoding="utf-8"?>

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item>

        <bitmap
            android:gravity="fill"
            android:src="@drawable/loading"/>
    </item>
    </layer-list>