0

我设计了一个闪屏。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);
    }
}
4

3 回答 3

0

用于SharedPreferences此。

您可以通过调用保存一个持久的布尔值

getPreferences(MODE_PRIVATE).edit().putBoolean("no_splash", true).commit();

然后您可以通过调用来检查该值

boolean noSplash = getPreferences(MODE_PRIVATE).getBoolean("no_splash", false);

如果noSplash为真,则立即启动您的主 Activity,而不是启动Thread.

于 2015-11-19T05:18:57.597 回答
0

用户共享 Preferences 来实现这个,创建一个类

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);
于 2015-11-19T05:22:11.977 回答
0

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

在委托活动 oncreate 检查您的偏好是否应该显示启动完成委托活动并显示它,否则显示您的主屏幕。

于 2015-11-19T07:50:35.783 回答