Rak*_*ari 6 android sharedpreferences
我有以下类SplashActivity.java:
public class SplashScreen extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Thread timer = new Thread(){
public void run(){
try{
sleep(5000);
}catch(InterruptedException e)
{
e.printStackTrace();
}
finally{
Intent tutorial = new Intent(SplashScreen.this, TutorialOne.class);
startActivity(tutorial);
}
}
};
timer.start();
}
}
Run Code Online (Sandbox Code Playgroud)
我希望此活动仅在首次在移动设备上首次安装应用时加载一次.作为Android的新手,我对此一无所知.我读到了SharedPreferences要使用的地方,但是不了解实施情况.关于这项活动的事情是,活动必须作为Launcher第一次使用时,这才是真正让我困惑的事情.因为在清单文件中我宣布另一个活动,在我的情况下将是MainPage.java.那我怎么能实现这个逻辑?难道我呼吁SplashActivity的MainPage还是有别的东西,必须做的?请帮助别人?
有人可以写下代码来实现这个逻辑吗?
Ale*_*Bcn 23
将此代码添加到onCreate方法中
SharedPreferences pref = getSharedPreferences("ActivityPREF", Context.MODE_PRIVATE);
if(pref.getBoolean("activity_executed", false)){
Intent intent = new Intent(this, TutorialOne.class);
startActivity(intent);
finish();
} else {
Editor ed = pref.edit();
ed.putBoolean("activity_executed", true);
ed.commit();
}
Run Code Online (Sandbox Code Playgroud)
每次执行应用程序时都会保留SharedPreferences,除非您清除Android上的"设置"中的数据.第一次是从这样的首选项(ActivityPREF)上保存的布尔值(activity_executed)中获取值.
如果它没有找到任何值,它将返回false,因此我们必须编辑首选项并将值设置为true.下一次执行将启动该活动TutorialOne.
finish() 从堆栈历史中删除当前活动,因此不能使用TutorialOne中的按钮返回.
关于你的清单,你可以设置这个actitiy
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
每次执行应用程序都会启动此活动,但由于真正设置的"activity_executed"将开始一个新的活动startActivity.
| 归档时间: |
|
| 查看次数: |
19609 次 |
| 最近记录: |