AndroidStudio(Kotlin)的导航问题

时间:2020-06-13 18:16:09

标签: android-studio kotlin

我想寻求帮助,我正面临问题,我不知道如何解决。我在5秒钟后设计了一个启动屏幕,应该导航到另一个活动,我的问题是,如果在导航至第二个活动的过程中按了启动屏幕,则应用程序进入了后台。 如果我在这段时间内按下spalsh活动来创建家庭活动,则创建家庭活动的时间为300毫秒,而APP进入了后台。

class Main : AppCompatActivity() {
    private var enabled = true
    var onetime = false
    var response = 0
    private var myshered: SharedPreferences? = null
    private var mDelayHandler: Handler? = null
    private val sPlash: Long = 5000 //6 seconds
    private val mRunnable: Runnable = Runnable {
        if (!isFinishing) {
            test()
        }

    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        window.setFlags(
            WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
            WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
        )
        setContentView(R.layout.splash_screen)
        //Initialize the Handler
        mDelayHandler = Handler()
        //Navigate with delay
        mDelayHandler!!.postDelayed(mRunnable, sPlash)

    }

    public override fun onDestroy() {

        if (mDelayHandler != null) {
            mDelayHandler!!.removeCallbacks(mRunnable)
        }
        super.onDestroy()
    }

    override fun onBackPressed() {
    }

    fun test() {

        val retrofit = Retrofit.Builder()
            .baseUrl("http://168.128.33.104:80/")
            .addConverterFactory(GsonConverterFactory.create())
            .build()
        val api: ApiService = retrofit.create(ApiService::class.java)
        api.getdata("updates/apiv1/articles/")
        val call = api.getnew("updates/apiv1/articles/")
        call.enqueue(object : Callback<List<ArticleData>> {
            override fun onFailure(call: Call<List<ArticleData>>, t: Throwable) {
                enable(false)
                Toast.makeText(this@Main, "Unable to connect to server", Toast.LENGTH_LONG).show()
                val it = Intent(this@Main, Home::class.java)
                startActivity(it)
            }

            override fun onResponse(
                call: Call<List<ArticleData>>,
                response: Response<List<ArticleData>>
            ) {
                if (response.code() == 200) {
                    enable(false)
                    getWindow().setFlags(
                        WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
                        WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
                    );
                    lgnsucess = true
                    News = response.body()!!
                    val it = Intent(this@Main, Home::class.java)
                    it.flags = Intent.FLAG_ACTIVITY_NEW_TASK
                    startActivity(it)
                } else {
                    enable(false)
                    getWindow().setFlags(
                        WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
                        WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
                    );
                    lgnsucess = false
                    val it = Intent(this@Main, Home::class.java)
                    startActivity(it)
                }
            }
        })
    }

    companion object {
        var lgnsucess = false
        var News: List<ArticleData> = emptyList()
    }

    fun enable(b: Boolean) {
        enabled = b
    }

    override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
        return if (enabled) super.dispatchTouchEvent(ev) else true
    }
}

0 个答案:

没有答案