2011-08-15 12 views
13

Uygulama kurulduktan hemen sonra bir kod parçası çalıştırmak istiyorum. Yürütüldükten sonra, söz konusu özel kod parçası bir yükseltme için bile tekrar çağrılmamalıdır.
a:Android cihazında bir uygulama yüklendikten sonra sadece bir kez çalıştırma kodu

+3

bu sadece yükleyici bir parçası olması gerekmez mi? – Woot4Moo

+0

@ Woot4Moo - Yükleyici tarafından ne demek istiyorsunuz? Ben (android üzerinde) – MByD

+0

platformunda geliştirmediğim bir platformda, Google'ın montajcılar için genişletilebilir bir çerçeve oluşturduğunu düşündüm. Installbuilder veya installshield gibi. – Woot4Moo

cevap

35
  1. Kontrol eğer boolean X paylaşılan tercihleri ​​
  2. Değilse de True. Özel kod
    b'yi çalıştırın. Paylaşılan tercihler
  3. Örneğin

gibi gerçek x kaydet: Geçmişte paylaşılan tercihini kullandım

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 - Bir yorum için minnettarım – MByD

+0

her zaman benim için ifadeyi atlar .. nasıl yürütmeyi başardınız. lütfen benimle paylaşır mısın ... teşekkürler ... – medampudi

+0

@medampudi - Bir hata yaptım, durum tam tersi olmalı. düzenlemeye bakın. – MByD

4

, ama sen de bakmak olabilir onInstall şey yapmak isteyen vardır bir yüklemek alıcı. MyInstallReciever uygular 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 "güvenli bir yol değil. Çünkü uygulamayı yüklerken, uygulama DURDURMA durumundadır. Belki bunu iyi açıklayamadım ama" INSTALL_REFERRER "hakkında biraz araştırma yapmak bunu bilecektir. – David

0

kullanımı bu basit kod

if (getPreferences(MODE_PRIVATE).getBoolean("is_first_run", true)) { 
     /* 
     * your code here 
     */ 
     getPreferences(MODE_PRIVATE).edit().putBoolean("is_first_run", false).commit(); 
    } 
İlgili konular