當我們在除錯應用程式的時候,我們或許會在我們的程式碼裡插入幾行log語句來看看這裡到底發生了什麼。比如:
class MainActivity : AppCompatActivity() {
lateinit var retrofit: Retrofit
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setupToolbar()
Log.d("MyApp", "Toolbar Set")
initRetrofit()
Log.d("MyApp", "Retrofit Initialized")
var myButton = findViewById<Button>(R.id.search_close_btn)
myButton.setOnClickListener {
Log.d("MyApp", "My Button Clicked")
}
Log.d("MyApp", "Activity Creation Done!")
}
}
複製程式碼
這種方法很有效,但如果我們在提交程式碼之前忘記了刪除這些日誌,那麼它們就會在程式碼審查的時候中被標記,甚至在我們釋出應用時仍然存在。
現在IntelliJ和Android Studio提供了一種解決辦法,它允許您建立非暫停性斷點。
首先,單擊任意一行程式碼,建立除錯斷點。然後你可以通過單擊右鍵彈出編輯斷點的對話方塊。你會看到這個:

然後,取消選中Suspend核取方塊,您會看到更多選項,如下所示:

現在,將程式碼中的log語句新增到Evaluate and log
框中,如下所示:

當你從程式碼中刪除了所有Log語句,並將它們放入斷點之後,程式碼看起來會更乾淨整潔,如下所示:
class MainActivity : AppCompatActivity() {
lateinit var retrofit: Retrofit
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setupToolbar()
initRetrofit()
var myButton = findViewById<Button>(R.id.search_close_btn)
myButton.setOnClickListener {
}
}
}
複製程式碼
最後您需要做的就是單擊右上方“除錯”按鈕,在除錯模式下執行應用程式,這些日誌訊息將會顯示在除錯控制檯中。