【问题标题】:First launch and after update alert android首次启动和更新后警报 android
【发布时间】:2012-12-30 10:42:59
【问题描述】:

我希望我的应用程序 (android) 在第一次启动时转到另一个活动,因此人们会立即更改他们的设置。更新我的应用程序后,我想显示一个更改日志。我知道你可以通过共享偏好来实现这一点,我做了这样的事情:

package me.wouter.schoolwork;

import android.app.Activity;
import android.app.AlertDialog;

import android.os.Bundle;


public class Updater extends Activity{


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

public void checkFirstLaunch(){
    boolean firstrun = getSharedPreferences("PREFERENCE", MODE_PRIVATE).getBoolean("firstrun", true);
    if (firstrun){
        new AlertDialog.Builder(this).setTitle("Welcome").setMessage("Welcome on  ").setNeutralButton("OK", null).show();

    getSharedPreferences("PREFERENCE", MODE_PRIVATE)
        .edit()
        .putBoolean("firstrun", false)
        .commit();
    }
}

}

我不确定这是否有效,并且这不适用于更新。谁能帮帮我?

提前致谢:)

【问题讨论】:

  • 我运行了您的代码,它在首次启动时显示对话框。你面临什么问题?
  • 如果这也适用于更新应用程序..
  • 当然可以。您必须跟踪应用程序的当前版本。试试下面发布的答案。

标签: java android launch


【解决方案1】:

试试这个:

final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
int currentVersion = 0;
    try {
        currentVersion = getPackageManager().getPackageInfo(getSherlockActivity().getPackageName(), PackageManager.GET_CONFIGURATIONS).versionCode;
    } catch (final NameNotFoundException e) {
    }

    final int lastVersion = prefs.getInt("lastVersion", -1);
    if (currentVersion > lastVersion) {
        showChangelogDialog();
        prefs.edit().putInt("lastVersion", currentVersion).commit();
    }

【讨论】:

  • 好的,谢谢,但这也适用于首次发布(版本 1)
  • 可以看到,当SharedPreferences中还没有记录时,默认值为-1。然后显示 1>-1 和更改日志。
猜你喜欢
  • 2015-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多