我正在开发一款Android应用,我想在其中检查用户是否已将应用最小化,还是仅来自其他活动。
详细地说,如果用户已启动另一个应用程序,转到主屏幕或锁定屏幕,我想显示用户将输入密码以访问应用程序的活动。但是在哪里或如何确切地检查这个?
https://developer.android.com/guide/components/activities/activity-lifecycle.html
我正在尝试onResume()
但是根据文档onResume()
,如果用户导航到另一个活动并返回,则可以触发。
答案 0 :(得分:1)
我不清楚你想要达到的目标。 如果你想知道什么时候会发生什么样的生命周期方法,那么生命周期图就很清楚了。 基本上,最小化应用程序并转到另一个活动是一样的。但是,如果您指的是来自自己应用中的其他活动,则可以通过向您使用的意图添加额外信息来区分自己的活动。
基本上,它是这样的:
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtra(key,value);
startActivity(intent);
在SecondActivity中,您始终可以像这样检索数据:
Bundle bundle = getIntent().getExtras();
if ( bundle != null && bundle.containsKey(key) ) {
value = bundle.getInt(key); // not nessecarily getInt(), you should use according to your value type
// use the value to tell if it is from your own app
} else {
// it is not from your own app
}
您可以将此机制与生命周期方法结合使用。例如,如果你在onCreate()方法中使用后一个代码,那么每当创建Activity时,if会检查是谁创建它,这听起来就像你想要的那样。
答案 1 :(得分:0)
一旦您的活动变得可见,它将立即调用OnStart()并且一旦准备好进行交互(例如触摸,单击等事件)。它调用onResume,在这个阶段你的应用程序正在运行,它完全在前台。当您的活动启动另一个活动或对话框时,它会调用onPause,这意味着活动可见,但用户无法与活动UI交互。如果我们启动另一个完全隐藏上一个活动的Activity,那么它的onStop方法被称为
答案 2 :(得分:0)
onPause
:当另一个活动进入前台时调用。
onStop
:当其他活动完全可见时调用。
onResume
:当您的活动从onPause
州导航回来时调用。
也许您的应用已经处于onStop
状态,因此它会调用onRestart
。