我想寻求帮助,我正面临问题,我不知道如何解决。我在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
}
}