2014-04-01 60 views
1

我是Android新手。我正在編寫一個應用程序來使用Log語句來跟蹤Activity的生命週期。我想殺死我的應用程序,以便查看被調用的onDestroy()事件。我添加了一個按鈕來完成此操作,但我無法終止該應用程序。我也試過System.exit(0),但我的應用程序不會終止。我究竟做錯了什麼?殺死單個活動Android應用程序

public class MainActivity extends Activity { 

    private static final String LOG_DISPLAY = "DEBUG"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Log.d(LOG_DISPLAY, "onCreate called"); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     Log.d(LOG_DISPLAY, "onPause called"); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     Log.d(LOG_DISPLAY, "onResume called"); 
    } 

    @Override 
    protected void onStop() { 
     super.onStop(); 
     Log.d(LOG_DISPLAY, "onStop called"); 
    } 

    @Override 
    protected void onStart() { 
     super.onStop(); 
     Log.d(LOG_DISPLAY, "onStart called"); 
    } 

    @Override 
    protected void onRestart() { 
     super.onStop(); 
     Log.d(LOG_DISPLAY, "onRestart called"); 
    } 

    public void addListenerOnButton() { 
     Button button = (Button) findViewById(R.id.button1); 

     button.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
       finish(); 
       //System.exit(0); 
      } 
     }); 

    } 
} 
+0

什麼記錄它顯示???你在代碼 – Hardik

+1

中沒有覆蓋onDestroy方法,你的'addListenerOnButton()'方法永遠不會被調用。在'onCreate()'中調用 – Droidman

回答

3

,以檢查它是否被調用,並且也打電話給你addListenerOnButton方法必須覆蓋onDestroy

嘗試用這個!

public class MainActivity extends Activity { 

    private static final String LOG_DISPLAY = "DEBUG"; 

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

     Log.d(LOG_DISPLAY, "onCreate called"); 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     Log.d(LOG_DISPLAY, "onDestroy called"); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     Log.d(LOG_DISPLAY, "onPause called"); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     Log.d(LOG_DISPLAY, "onResume called"); 
    } 

    @Override 
    protected void onStop() { 
     super.onStop(); 
     Log.d(LOG_DISPLAY, "onStop called"); 
    } 

    @Override 
    protected void onStart() { 
     super.onStop(); 
     Log.d(LOG_DISPLAY, "onStart called"); 
    } 

    @Override 
    protected void onRestart() { 
     super.onStop(); 
     Log.d(LOG_DISPLAY, "onRestart called"); 
    } 

    public void addListenerOnButton() { 
     Button button = (Button) findViewById(R.id.button1); 

     button.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
       MainActivity.this.finish(); 
       //System.exit(0); 
      } 
     }); 

    } 
} 
2

首先添加缺少的onDestroy實現向您展示日誌:

@Override 
protected void onDestroy() { 
    Log.d(LOG_DISPLAY, "onDestroy called"); 
    super.onDestroy(); 
} 

然後只需打開活動,並與硬件back按鈕退出。你會看到onDestroy日誌。

您將有同樣的效果調用finish()編程爲好,只是不要忘了將呼叫轉移到addListenerOnButton某處內onCreate

相關問題