我创建了一个Android应用程序。每次用户从后台到前台时,我都会尝试调用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
?
答案 0 :(得分:1)
此示例是如何在Application中设置标志并检查库是否即将打开
public class Application extends android.app.Application {
static boolean isGallery;
@Override
public void onCreate() {
super.onCreate();
}
public static void setGalleryFlag(boolean isTrue){
isGallery = isTrue;
}
public void checkGallery(){
if (isGallery){
//hide your activity
}else{
//operate normally
}
}
}
因此,当您打算打开图库时,只需将标记设置为true
即可private void startGallery() {
Application.setGalleryFlag(true);
//open the gallery now
}