按下按钮禁用启动画面

时间:2015-11-19 05:09:09

标签: javascript android splash-screen splash dynamic-splash-screen

我设计了一个启动画面。 Java代码如下。在那个屏幕上,我有一个名为“不再显示此屏幕未来”的按钮。按下此按钮后,无论应用程序启动多少次,都不得在将来显示启动画面。我怎样才能做到这一点?提前致谢。

public class Qz1 extends Activity {
MyThread thread;
private class MyThread extends Thread
{
    public boolean bRun = true;

    @Override
    public void run()
    {
        try
        {
            sleep(3200);
            if (bRun)
            {
                startActivity(new Intent(getApplicationContext(), Qone.class));
                Qz1.this.overridePendingTransition(R.anim.newright,
                        R.anim.newleft);
            }
        }
        catch (InterruptedException e)
        {
            e.printStackTrace();
        }
    }
}


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_qz1);

    thread = new MyThread();
    thread.start();
}


public void round1(View v){

       Intent i = new Intent(Qz1.this, Qone.class);
       startActivity(i);
        this.overridePendingTransition(R.anim.newright,
                R.anim.newleft);
    }
}

3 个答案:

答案 0 :(得分:0)

请使用SharedPreferences

您可以通过调用

来保存持久的布尔值
getPreferences(MODE_PRIVATE).edit().putBoolean("no_splash", true).commit();

然后你可以通过调用

来检查该值
boolean noSplash = getPreferences(MODE_PRIVATE).getBoolean("no_splash", false);

如果noSplash为真,则立即启动主活动,而不是启动Thread

答案 1 :(得分:0)

用户共享首选项实现此目的,创建一个类

public class Preference {

    private SharedPreferences sharedPreferences;
    private SharedPreferences.Editor editor;

    public Preference(Context context) {
        sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
    }

    public void writePreference(String key, Object value) {
        if(value instanceof Boolean) {
            editor = sharedPreferences.edit();
            editor.putBoolean(key, (Boolean) value);
            editor.commit();

        }
    }

    public Object readPreference(String key , Object defValue) {

        if(defValue instanceof Boolean)
            return sharedPreferences.getBoolean(key, (Boolean) defValue);
        else
            return null;
    }

    public Boolean getDisableSplash() {
        return (Boolean) readPreference("disable", false);
    }

    public void disableSplash(Boolean value)) {
        writePreference("disable", valve);
    }

}

并在您的主要内容中创建一个Preference对象来读取和写入首选项

Preference preference = new Preference(YourActivity.this);
Boolean result = preference.getDisableSplash();

if(!result) {
    // dissable you splash activity here and move to next one
}

当您想要禁用它时

Preference preference = new Preference(YourActivity.this);
preference.disableSplash(true);

答案 2 :(得分:0)

您可以通过创建委托活动解决此问题,将空活动设置为启动器活动,

在代理活动oncreate上检查您的偏好,如果您应该显示代表活动的启动并显示其他显示您的主屏幕。