2014-08-29 43 views
0

我只想在第一次運行時開始活動。所以在我運行它之後,它永遠不會再打開。此活動添加了僅通過第一次啓動運行活動

<intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 

所以此活動首先啓動。 我有一個變量可以幫助我決定這個活動是否第一次啓動(即使用名爲sem_first_time的SharedPreferences保存它)。如果它是0,那麼它是第一次,如果不是,則該活動必須完成並且開始另一個。 這裏是我的代碼

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    SharedPreferences data = getSharedPreferences("datas",Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = data.edit(); 

    first_start = data.getInt("fstart", 0); 

    if (first_start == 1) 
    { 
     finish(); 
     Intent start = new Intent(this, Main.class); 
     startActivity(start); 
    } 

    setContentView(R.layout.first_start); 

我有一個按鈕,first_start設置爲1

public void create (View view) 
{ 
    SharedPreferences data = getSharedPreferences("datas",Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = data.edit(); 

    first_start = 1; 
    editor.putInt("fstart", first_start); 

    ... 
} 

但是,當我開始這個程序一旦它再次顯示該活動...什麼是錯的?

+0

瞭解活動的生命週期:http://developer.android.com/training/basics/activity-lifecycle/starting.html – 2014-08-29 21:16:45

+2

之後你犯放在'SharedPreferences'價值? editor.commit(); – 2014-08-29 21:18:51

+0

就是這樣!謝謝:) – user3339279 2014-08-29 21:20:32

回答

0

它正在發生,因爲這是啓動器活動,並且您正在啓動其他活動之前完成活動。它應該像

if (first_start == 1) 
{ 

    Intent start = new Intent(this, Main.class); 
    startActivity(start); 
    finish(); 
} 
+0

我也試過這種方式,但它沒有幫助 – user3339279 2014-08-29 21:19:08

相關問題