0

MainActivity、onlyFirstRunActivity、alwaysRunActivityを持つアプリを実装しています。今、私はアプリのインストールまたはアプリの更新時に私のアプリサイクルが次のようになることを望んでいます:

MainActivity-> onlyFirstRunActivity-> alwaysRunActivity

インストール後または更新後、私のアプリサイクルは次のようになります。

MainActivity-> alwaysRunActivity

この状況をどのように実装できますか

4

3 に答える 3

1

アプリの更新時刻を取得して、SharedPreferenceに保存できます。

また、メインアクティビティを常に実行するようにする必要があります。

//In your onCreate for your main activity/.
if(last_update_preference < current_update_time){
   Update last update preference to current update time.
   Run first activity. (Which will finish and bounce you back);
}

current_update_timeを取得するには:

Androidからアプリのインストール時間を取得する方法

最終更新時刻については、以下を参照してください。

http://developer.android.com/guide/topics/data/data-storage.html#pref

于 2013-02-08T16:50:02.860 に答える
0

あなたはこのようなことを試すことができます:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    App app = (App)getApplication();
    if (app.getApi() != null){
        super.onBackPressed();
        startActivity(new Intent(this, MainActivity.class));
        return;
    }else showLoginForm();//or do something else.
}
于 2013-02-08T16:51:59.500 に答える
0

このように、新規インストールと更新を区別できます。

    String StoredVersionname = "";
    String VersionName;
    AlertDialog LoginDialog;
    AlertDialog UpdateDialog;
    AlertDialog FirstRunDialog;
    SharedPreferences prefs;

    public static String getVersionName(Context context, Class cls) {
                try {
                    ComponentName comp = new ComponentName(context, cls);
                    PackageInfo pinfo = context.getPackageManager().getPackageInfo(
                            comp.getPackageName(), 0);
                    return "Version: " + pinfo.versionName;
                } catch (android.content.pm.PackageManager.NameNotFoundException e) {
                    return null;
                }
            }

    public void CheckFirstRun() {
                VersionName = MyActivity.getVersionName(this, MyActivity.class);
prefs = PreferenceManager.getDefaultSharedPreferences(this);
                StoredVersionname = (prefs.getString("versionname", null));
                if (StoredVersionname == null || StoredVersionname.length() == 0){
                    FirstRunDialog = new FirstRunDialog(this);
                    FirstRunDialog.show();
                }else if (StoredVersionname != VersionName) {
                    UpdateDialog = new UpdateDialog(this);
                    UpdateDialog.show();
                }
                prefs.edit().putString("versionname", VersionName).commit();
            }
于 2013-04-15T16:41:27.083 に答える