Skip to content

Instantly share code, notes, and snippets.

@charlesmuchene
Created April 4, 2020 15:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save charlesmuchene/7ee25c4d2c3b4e7f3e84ab74784b99f2 to your computer and use it in GitHub Desktop.
Save charlesmuchene/7ee25c4d2c3b4e7f3e84ab74784b99f2 to your computer and use it in GitHub Desktop.
Handler Thread usage
class NQueensActivity : AppCompatActivity() {
private val handlerThread = HandlerThread("NQueens").also { it.start() }
private val handler = Handler(handlerThread.looper)
private var queens = 1
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
solveButton.setOnClickListener {
solveNQueens(queens)
}
}
private fun solveNQueens(queens: Int) {
handler.post {
val positions = ... // Calculate possible queen positions
Handler(mainLooper).post {
renderUI(positions)
}
}
}
override fun onStop() {
super.onStop()
handlerThread.quitSafely()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment