我在android中开发了一个应用程序,其中一个重要的要求是仅在应用程序第一次运行时显示语言支持的消息对话框,然后每次用户再次运行应用程序时它都会消失,我尝试使用共享首选项,但它没有用,有没有其他方法可以做到这一点?
答案 0 :(得分:15)
在onCreate处理程序中使用此函数:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
if (isFirstTime()) {
// show dialog
}
...
}
/***
* Checks that application runs first time and write flag at SharedPreferences
* @return true if 1st time
*/
private boolean isFirstTime()
{
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
boolean ranBefore = preferences.getBoolean("RanBefore", false);
if (!ranBefore) {
// first time
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("RanBefore", true);
editor.commit();
}
return !ranBefore;
}
注意:它需要访问存储上文件的权限:android.permission.WRITE_EXTERNAL_STORAGE
答案 1 :(得分:0)
共享首选项是推荐的方式,但您也可以将该设置写入本地sqllite数据库,或将其写入存储在设备内部存储(SD卡)中的文件。
答案 2 :(得分:-1)
你正在返回“!ranBefore”,你肯定应该只返回“ranBefore”。 此外,您可以确保始终使用以下方式获得相同的共享首选项:
SharedPreferences settings = getSharedPreferences("yourSharedPreferanceName", 0);