【发布时间】:2018-01-03 07:06:28
【问题描述】:
我创建了一个安卓应用程序。每次当用户从后台转到前台时,我都会尝试调用PinLoginActivity。我正在使用下面的方法来检测我的应用程序中所有活动的onStart 和onStop,并且它工作得很好。
class YourApplication : Application() {
override fun onCreate() {
super.onCreate()
registerActivityLifecycleCallbacks(AppLifecycleTracker())
}
}
class AppLifecycleTracker : Application.ActivityLifecycleCallbacks {
private var numStarted = 0
override fun onActivityStarted(activity: Activity?) {
if (numStarted == 0) {
Intent intent = new Intent(getApplicationContext(), PinLoginActivity.class);
intent.putExtra("LockScreen", true);
startActivity(intent);
}
numStarted++
}
override fun onActivityStopped(activity: Activity?) {
numStarted--
if (numStarted == 0) {
}
}
}
现在的问题是:
我正在从我的应用程序中访问图库。打开图库后,选择图像并返回我的应用程序。我收到了PinLoginActivity。在这种情况下如何避免调用PinLoginActivity?
【问题讨论】:
-
要么不要使用
startActivityForResult,因为这会将您带出您的应用程序,进入另一个“不安全”的应用程序,因此应该需要一个 pin(并实现您自己的图像选择器)。或者在您开始画廊活动之前增加您的计数器并在onActivityResult中减少它。 -
或者你可以在应用程序中调用一个方法,为画廊设置一个标志为真,然后检查标志是否设置为真并采取相应的行动
-
我该怎么做? @vikaskumar
-
@Blundell 我在 Application.java 文件中有这个回调。如何在我调用画廊的 Activity 中增加计数器?
-
有什么方法可以知道调用当前前台活动的先前活动吗? @Blundell