Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我离开活动时,如何停止测验倒计时?_Java_Android - Fatal编程技术网

Java 当我离开活动时,如何停止测验倒计时?

Java 当我离开活动时,如何停止测验倒计时?,java,android,Java,Android,嘿,伙计们,我这里有一个简单的测试代码,但我这里有两个问题。首先,我将在下面向您展示我的代码: class SingleQuizQuestionActivity : AppCompatActivity() { val URL_QUESTION = "https://blabla.com/app/blabla/question.php" internal lateinit var b1: Button internal lateinit va

嘿,伙计们,我这里有一个简单的测试代码,但我这里有两个问题。首先,我将在下面向您展示我的代码:

    class SingleQuizQuestionActivity : AppCompatActivity() {
        val URL_QUESTION = "https://blabla.com/app/blabla/question.php"
        internal lateinit var b1: Button
        internal lateinit var b2: Button
        internal lateinit var b3: Button
        internal lateinit var b4: Button
        internal lateinit var back: Button
        internal lateinit var bnr: TextView
        internal lateinit var jlh:TextView
        internal lateinit var btnscore: Button
        internal lateinit var t1_question: TextView
        internal lateinit var btn: Button
        private lateinit var Handler : Handler
        private lateinit var Runnable : Runnable
        internal lateinit var reference: DatabaseReference
        internal var questionNumber = 0
        internal var correct = 0
        internal var wrong = 0
        var totall: Int = 1
        lateinit var noInternetDialog: NoInternetDialog

        private fun generateRandomNumbre(): Int {
            var random: Int = 1

            random = (1..20).random()

            return random
        }

        override fun onBackPressed() {

            val alertDialog = AlertDialog.Builder(this)
                    .setTitle("Keluar Game")
                    .setMessage("Anda Yakin Ingin Keluar Dari Game")
                    .setPositiveButton("Ya") { _, _ ->
                        super.onBackPressed()
                        finish()
                    }
                    .setNegativeButton("Tidak") { _, _ -> }

            alertDialog.show()
        }

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_single_quiz_question)
            b1 = findViewById<View>(R.id.button1) as Button
            b2 = findViewById<View>(R.id.button2) as Button
            b3 = findViewById<View>(R.id.button3) as Button
            b4 = findViewById<View>(R.id.button4) as Button
            back = findViewById<View>(R.id.backk) as Button
            jlh = findViewById<View>(R.id.texttitle) as TextView
            bnr = findViewById<View>(R.id.ttl) as TextView
            t1_question = findViewById<View>(R.id.questionsTxt) as TextView
            btn = findViewById<View>(R.id.btntimer) as Button
            btnscore = findViewById<View>(R.id.btnscores) as Button
            Handler = Handler()
            totall = generateRandomNumbre()
            question(totall.toString())

            back.setOnClickListener {
                onBackPressed()
            }

            noInternetDialog = NoInternetDialog.Builder(this)
                    .setBgGradientStart(ContextCompat.getColor(this, R.color.colorPrimary))
                    .setBgGradientCenter(ContextCompat.getColor(this, R.color.colorPrimary))
                    .setBgGradientEnd(ContextCompat.getColor(this, R.color.colorPrimary))
                    .setWifiLoaderColor(ContextCompat.getColor(this, R.color.colorWhite))
                    .setButtonTextColor(ContextCompat.getColor(this,R.color.black))
                    .setButtonIconsColor(ContextCompat.getColor(this,R.color.black))
                    .setButtonColor(ContextCompat.getColor(this, R.color.colorAccent)).build()
        }

        inner class MyCounter(millisInFuture: Long, countDownInterval: Long) : CountDownTimer(millisInFuture, countDownInterval) {

            override fun onFinish() {
                wrong++
                question(totall.toString())
            }

            override fun onTick(millisUntilFinished: Long) {
                btntimer.text = (millisUntilFinished / 1000).toString() + ""
                println("Timer  : " + millisUntilFinished / 1000)
            }
        }

        private fun question(total: String) {
            val stringRequest = object : StringRequest(Request.Method.POST, URL_QUESTION,
                    Response.Listener { response ->
                        try {
                            val jsonObject = JSONObject(response)
                            val success = jsonObject.getString("success")
                            val jsonArray = jsonObject.getJSONArray("question")

                            if (success == "1") {
                                for(i in 0 until jsonArray.length())
                                {
                                    var `object` = jsonArray.getJSONObject(i)
                                    var soal = `object`.getString("soal").trim()
                                    var jawaban = `object`.getString("jawaban").trim()
                                    var opsi1 = `object`.getString("opsi1").trim()
                                    var opsi2 = `object`.getString("opsi2").trim()
                                    var opsi3 = `object`.getString("opsi3").trim()

                                    questionNumber ++
                                    if (questionNumber > 20) {

                                        val one = btnscore.text.toString()
                                        val two = one.toInt()
                                        val i = Intent(this@SingleQuizQuestionActivity, SingleQuizResultActivity::class.java)
                                        i.putExtra("correct", correct.toString())
                                        i.putExtra("incorrect", wrong.toString())
                                        i.putExtra("score",two)
                                        finish()
                                        startActivity(i)
                                    } else {
                                        jlh.setText("Pertanyaan "+questionNumber.toString()+" / 20")
                                        bnr.setText("Benar :\n"+correct.toString()+" / 20")
                                        val timer = MyCounter(20000,1000)
                                        timer.start()
                                        t1_question.text = soal
                                        var corectPos : Int = Random.nextInt(0,4)
                                        val buttons = arrayOf(
                                            b1,b2,b3,b4
                                        )
                                        val answers:Array<String?> = arrayOf(
                                            jawaban,
                                            opsi1,
                                            opsi2,
                                            opsi3
                                        )
                                        for(i:Int in 0 until 4){
                                            if (i != corectPos){
                                                if (i == 3) {
                                                    buttons[i].setText(answers[corectPos])
                                                }
                                                else {
                                                    buttons[i].setText(answers[i])
                                                }
                                            }
                                            else{
                                                buttons[i].setText(answers[3])
                                            }
                                        }
                                        b1.setOnClickListener {
                                            timer.cancel()
                                            if (b1.text.toString() == jawaban) {
                                                    b1.setBackgroundResource(R.drawable.optionbnr)
                                                    b1.isEnabled = false
                                                    b2.isEnabled = false
                                                    b3.isEnabled = false
                                                    b4.isEnabled = false
                                                    Runnable = java.lang.Runnable {
                                                    correct++
                                                    b1.setBackgroundResource(R.drawable.opnormal)
                                                    b2.setBackgroundResource(R.drawable.opnormal)
                                                    b3.setBackgroundResource(R.drawable.opnormal)
                                                    b4.setBackgroundResource(R.drawable.opnormal)
                                                        b1.isEnabled = true
                                                        b2.isEnabled = true
                                                        b3.isEnabled = true
                                                        b4.isEnabled = true
                                                    updatescore()
                                                        var randomlagi = generateRandomNumbre()
                                                        question(randomlagi.toString())
                                            }
                                            Handler.postDelayed(Runnable,1000)
                                            } else {
                                                wrong++
                                                b1.setBackgroundResource(R.drawable.optionslh)
                                                if (b2.text.toString() == jawaban) {
                                                    b2.setBackgroundResource(R.drawable.optionbnr)
                                                } else if (b3.text.toString() == jawaban) {
                                                    b3.setBackgroundResource(R.drawable.optionbnr)
                                                } else if (b4.text.toString() == jawaban) {
                                                    b4.setBackgroundResource(R.drawable.optionbnr)
                                                }
                                                b1.isEnabled = false
                                                b2.isEnabled = false
                                                b3.isEnabled = false
                                                b4.isEnabled = false
                                                Runnable = java.lang.Runnable {
                                                    b1.setBackgroundResource(R.drawable.opnormal)
                                                    b2.setBackgroundResource(R.drawable.opnormal)
                                                    b3.setBackgroundResource(R.drawable.opnormal)
                                                    b4.setBackgroundResource(R.drawable.opnormal)
                                                    b1.isEnabled = true
                                                    b2.isEnabled = true
                                                    b3.isEnabled = true
                                                    b4.isEnabled = true
                                                    var randomlagi = generateRandomNumbre()
                                                    question(randomlagi.toString())
                                                }
                                                Handler.postDelayed(Runnable,1000)
                                            }
                                        }

                                        b2.setOnClickListener {
                                            timer.cancel()
                                            if (b2.text.toString() == jawaban) {
                                                b1.isEnabled = false
                                                b2.isEnabled = false
                                                b3.isEnabled = false
                                                b4.isEnabled = false
                                                b2.setBackgroundResource(R.drawable.optionbnr)
                                                Runnable = java.lang.Runnable {
                                                    correct++
                                                    b1.setBackgroundResource(R.drawable.opnormal)
                                                    b2.setBackgroundResource(R.drawable.opnormal)
                                                    b3.setBackgroundResource(R.drawable.opnormal)
                                                    b4.setBackgroundResource(R.drawable.opnormal)
                                                    b1.isEnabled = true
                                                    b2.isEnabled = true
                                                    b3.isEnabled = true
                                                    b4.isEnabled = true
                                                    updatescore()
                                                    var randomlagi = generateRandomNumbre()
                                                    question(randomlagi.toString())
                                                }
                                                Handler.postDelayed(Runnable,1000)
                                            } else {
                                                wrong++
                                                b2.setBackgroundResource(R.drawable.optionslh)
                                                if (b1.text.toString() == jawaban) {
                                                    b1.setBackgroundResource(R.drawable.optionbnr)
                                                } else if (b3.text.toString() == jawaban) {
                                                    b3.setBackgroundResource(R.drawable.optionbnr)
                                                } else if (b4.text.toString() == jawaban) {
                                                    b4.setBackgroundResource(R.drawable.optionbnr)
                                                }
                                                b1.isEnabled = false
                                                b2.isEnabled = false
                                                b3.isEnabled = false
                                                b4.isEnabled = false
                                                Runnable = java.lang.Runnable {
                                                    b1.setBackgroundResource(R.drawable.opnormal)
                                                    b2.setBackgroundResource(R.drawable.opnormal)
                                                    b3.setBackgroundResource(R.drawable.opnormal)
                                                    b4.setBackgroundResource(R.drawable.opnormal)
                                                    b1.isEnabled = true
                                                    b2.isEnabled = true
                                                    b3.isEnabled = true
                                                    b4.isEnabled = true
                                                    var randomlagi = generateRandomNumbre()
                                                    question(randomlagi.toString())
                                                }
                                                Handler.postDelayed(Runnable,1000)
                                            }
                                        }

                                        b3.setOnClickListener {
                                            timer.cancel()
                                            if (b3.text.toString() == jawaban) {
                                                b1.isEnabled = false
                                                b2.isEnabled = false
                                                b3.isEnabled = false
                                                b4.isEnabled = false
                                                b3.setBackgroundResource(R.drawable.optionbnr)
                                                Runnable = java.lang.Runnable {
                                                    correct++
                                                    b1.setBackgroundResource(R.drawable.opnormal)
                                                    b2.setBackgroundResource(R.drawable.opnormal)
                                                    b3.setBackgroundResource(R.drawable.opnormal)
                                                    b4.setBackgroundResource(R.drawable.opnormal)
                                                    b1.isEnabled = true
                                                    b2.isEnabled = true
                                                    b3.isEnabled = true
                                                    b4.isEnabled = true
                                                    updatescore()
                                                    var randomlagi = generateRandomNumbre()
                                                    question(randomlagi.toString())
                                                }
                                                Handler.postDelayed(Runnable,1000)
                                            } else {
                                                wrong++
                                                b3.setBackgroundResource(R.drawable.optionslh)
                                                if (b1.text.toString() == jawaban) {
                                                    b1.setBackgroundResource(R.drawable.optionbnr)
                                                } else if (b2.text.toString() == jawaban) {
                                                    b2.setBackgroundResource(R.drawable.optionbnr)
                                                } else if (b4.text.toString() == jawaban) {
                                                    b4.setBackgroundResource(R.drawable.optionbnr)
                                                }
                                                b1.isEnabled = false
                                                b2.isEnabled = false
                                                b3.isEnabled = false
                                                b4.isEnabled = false
                                                Runnable = java.lang.Runnable {
                                                    b1.setBackgroundResource(R.drawable.opnormal)
                                                    b2.setBackgroundResource(R.drawable.opnormal)
                                                    b3.setBackgroundResource(R.drawable.opnormal)
                                                    b4.setBackgroundResource(R.drawable.opnormal)
                                                    b1.isEnabled = true
                                                    b2.isEnabled = true
                                                    b3.isEnabled = true
                                                    b4.isEnabled = true
                                                    var randomlagi = generateRandomNumbre()
                                                    question(randomlagi.toString())
                                                }
                                                Handler.postDelayed(Runnable,1000)
                                            }
                                        }
                                        b4.setOnClickListener {
                                            timer.cancel()
                                            if (b4.text.toString() == jawaban) {
                                                b4.setBackgroundResource(R.drawable.optionbnr)
                                                b1.isEnabled = false
                                                b2.isEnabled = false
                                                b3.isEnabled = false
                                                b4.isEnabled = false
                                                Runnable = java.lang.Runnable {
                                                    correct++
                                                    b1.setBackgroundResource(R.drawable.opnormal)
                                                    b2.setBackgroundResource(R.drawable.opnormal)
                                                    b3.setBackgroundResource(R.drawable.opnormal)
                                                    b4.setBackgroundResource(R.drawable.opnormal)
                                                    b1.isEnabled = true
                                                    b2.isEnabled = true
                                                    b3.isEnabled = true
                                                    b4.isEnabled = true
                                                    var randomlagi = generateRandomNumbre()
                                                    question(randomlagi.toString())
                                                    updatescore()
                                                }
                                                Handler.postDelayed(Runnable,1000)
                                            } else {
                                                wrong++
                                                b4.setBackgroundResource(R.drawable.optionslh)
                                                if (b1.text.toString() == jawaban) {
                                                    b1.setBackgroundResource(R.drawable.optionbnr)
                                                } else if (b2.text.toString() == jawaban) {
                                                    b2.setBackgroundResource(R.drawable.optionbnr)
                                                } else if (b3.text.toString() == jawaban) {
                                                    b3.setBackgroundResource(R.drawable.optionbnr)
                                                }
                                                b1.isEnabled = false
                                                b2.isEnabled = false
                                                b3.isEnabled = false
                                                b4.isEnabled = false
                                                Runnable = java.lang.Runnable {
                                                    b1.setBackgroundResource(R.drawable.opnormal)
                                                    b2.setBackgroundResource(R.drawable.opnormal)
                                                    b3.setBackgroundResource(R.drawable.opnormal)
                                                    b4.setBackgroundResource(R.drawable.opnormal)
                                                    b1.isEnabled = true
                                                    b2.isEnabled = true
                                                    b3.isEnabled = true
                                                    b4.isEnabled = true
                                                    var randomlagi = generateRandomNumbre()
                                                    question(randomlagi.toString())
                                                }
                                                Handler.postDelayed(Runnable,1000)
                                            }
                                        }

                                    }
                                }

                            }
                        } catch (e: JSONException) {
                            e.printStackTrace()
    //                        Toast.makeText(activity, "Error $e", Toast.LENGTH_SHORT).show()
                        }
                    }, Response.ErrorListener { error ->  }) {
                @Throws(AuthFailureError::class)
                override fun getParams(): Map<String, String> {
                    val params = java.util.HashMap<String, String>()
                    params["total"] = total
                    return params
                }
            }
            val requestQueue = Volley.newRequestQueue(this)
            requestQueue.add(stringRequest)

        }

        private fun updatescore(){
            val one = btnscore.text.toString()
            val time = btntimer.text.toString()
            val two = one.toInt()
            val timee = time.toInt()
            var tri = 0
            if (timee > 9)
            {
                tri = two + (10*1)
            }
            else
            {
                tri = two + (1 * timee)
            }

            val four = tri.toString()
            btnscore.text = four
        }
    }

 var corectPos : Int = Random.nextInt(0,4)
                                     val buttons = arrayOf(
                                         b1,b2,b3,b4
                                     )
                                     val answers:Array<String?> = arrayOf(
                                         jawaban,
                                         opsi1,
                                         opsi2,
                                         opsi3
                                     )
                                     for(i:Int in 0 until 4){
                                         if (i != corectPos){
                                             if (i == 3) {
                                                 buttons[i].setText(answers[corectPos])
                                             }
                                             else {
                                                 buttons[i].setText(answers[i])
                                             }
                                         }
                                         else{
                                             buttons[i].setText(answers[3])
                                         }
                                     }
我的计时器:

    inner class MyCounter(millisInFuture: Long, countDownInterval: Long) : CountDownTimer(millisInFuture, countDownInterval) {

            override fun onFinish() {
                wrong++
                question(totall.toString())
            }

            override fun onTick(millisUntilFinished: Long) {
                btntimer.text = (millisUntilFinished / 1000).toString() + ""
                println("Timer  : " + millisUntilFinished / 1000)
            }
        }

    ```


在onPause()方法中停止计时器,然后在您想使用它时再次启动。

您可以调用onPause,这将帮助您在用户切换应用程序或切换时停止计时器activity@Ashish谢谢,但你能给我举个例子吗。因为我从不使用暂停?
    inner class MyCounter(millisInFuture: Long, countDownInterval: Long) : CountDownTimer(millisInFuture, countDownInterval) {

            override fun onFinish() {
                wrong++
                question(totall.toString())
            }

            override fun onTick(millisUntilFinished: Long) {
                btntimer.text = (millisUntilFinished / 1000).toString() + ""
                println("Timer  : " + millisUntilFinished / 1000)
            }
        }

    ```
Please read this article:>