2011-08-15 8 views
13

アプリケーションをインストールした後で一度だけコードを実行します。実行後は、アップグレードの場合でも、その特定のコードを再度呼び出すべきではありません。Androidデバイスにアプリケーションをインストールした後にコードを1回だけ実行する

+3

はそのちょうどインストーラの一部ではないでしょうか? – Woot4Moo

+0

@ Woot4Moo - インストーラはどういう意味ですか?私はそれに慣れていない(アンドロイドで) – MByD

+0

私はちょうどGoogleがインストーラのための拡張可能なフレームワークを作っていただろうと思ったプラットフォーム上で開発していない。 installbuilderやinstallshieldのように。 – Woot4Moo

答えて

35
  1. チェックされていない場合、ブールXが共有設定で
  2. Trueの場合:
    。特殊コード
    bを実行します。保存は、例えば、共有設定

のように真のX:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
if(!prefs.getBoolean("firstTime", false)) { 
    // run your one time code 
    SharedPreferences.Editor editor = prefs.edit(); 
    editor.putBoolean("firstTime", true); 
    editor.commit(); 
} 
+1

@Downvoter - コメントありがとうございます – MByD

+0

私はいつもif文をスキップします。私にそれを分かち合ってください...ありがとう... – medampudi

+0

@medampudi - 私は間違いを犯しました、条件は反対でなければなりません。編集を参照してください。 – MByD

4

を私は過去に共有プリファレンスを使用しましたが、あなたはまた、インストール時に見ることができるonInstall何かをやりたいと思っている場合受信機。 MyInstallRecieverがBroadcastReciever

<receiver 
    android:name="com.MyInstallReciever" 
    android:exported="true"> 
    <intent-filter> 
     <action 
      android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
</receiver> 
+0

"com.android.vending.INSTALL_REFERRER "安全な方法ではありません。アプリケーションをインストールするとき、アプリケーションが停止状態にあるので、私はそれをうまく説明できないかもしれませんが、" INSTALL_REFERRER "に関する少しの研究でこれを知るでしょう。 – David

0

使用を実装して、この単純なコード

if (getPreferences(MODE_PRIVATE).getBoolean("is_first_run", true)) { 
     /* 
     * your code here 
     */ 
     getPreferences(MODE_PRIVATE).edit().putBoolean("is_first_run", false).commit(); 
    } 
関連する問題