【问题标题】:Dont display splash screen when app is open once and kept in memory应用程序打开一次并保存在内存中时不显示启动画面
【发布时间】:2019-07-02 08:38:00
【问题描述】:

我想在用户启动我的应用程序时显示启动画面(像往常一样),但是因为我将使用动画启动画面,所以我不想每次打开应用程序时都用相同的动画打扰用户,所以他需要等待 3动画完成的秒数。

所以..

如果用户已经打开应用程序,我如何让应用程序不显示启动画面,并且应用程序应该检查打开时他是否处于缓存状态,然后再次调用,所以当他被调用时它不应该显示启动画面缓存内存。

因为这样,这意味着他不会被用户销毁,因此用户可以快速从一个应用程序转到另一个应用程序。


就像在谷歌日历中一样,每次打开它时都会看到启动画面让我很困扰,但我想做的所有事情都是检查一些笔记并返回日历以根据笔记制作一些事件。日历每次都花时间在他的启动屏幕上。但是当我有一段时间没有使用它时,当我启动它时,它仍然是很好的启动画面。


或者我应该在 MainActivity 中使用 onPause() 和 onDestroy() 方法来实现。如果是这样,我该怎么做,当我实例化一个时如何不显示启动画面?

【问题讨论】:

  • 使用 SharedPreferences 来存储一个布尔值,它将确定用户是否已经查看了初始屏幕。下次用户进入应用程序时使用此选项可跳过显示启动画面。

标签: android splash-screen


【解决方案1】:

创建一个 Preference Manager 类来存储一个布尔值来存储启动屏幕检查是否启动。

public class PrefManager { 
 private static final String KEY_IS_SPLASH_IN = "isSplashScreenIn";

  SharedPreferences pref;
    // Editor for Shared preferences
    Editor editor;
    // Context
    Context _context;
    // Shared pref mode
    int PRIVATE_MODE = 0;

    public PrefManager(Context context) {
        this._context = context;
        pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
        editor = pref.edit();
    }

 public boolean isSplashIn() {
        return pref.getBoolean(KEY_IS_SPLASH_IN, false);
    }

    public void setSplashIn(boolean setLogin) {
        editor.putBoolean(KEY_IS_SPLASH_IN, setLogin);
        editor.commit();
    }
}

在启动画面中使用首选项管理器类

public class SplashActivity extends Activity{

    PrefManager pref;

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
        pref = new PrefManager(this);
                    if (pref.isSplashIn == false) {
                         //Splash Screen Load
                         pref.setSplashIn(true);
                    } else {
                         Intent registration = new Intent(ctx, Login.class);
                         startActivity(registration);
                    }
           }
    }

谢谢,快乐编码.....

【讨论】:

    猜你喜欢
    • 2014-11-28
    • 2011-11-28
    • 2012-09-11
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多