我设计了一个启动画面。 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);
}
}
答案 0 :(得分:0)
您可以通过调用
来保存持久的布尔值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上检查您的偏好,如果您应该显示代表活动的启动并显示其他显示您的主屏幕。