当app从背景到前景时显示活动时出现问题

问题描述 投票:1回答:1

我创建了一个Android应用程序。每当用户从背景到前景时,我都会尝试调用PinLoginActivity。我使用下面的方法来检测我的应用程序中的所有活动的onStartonStop,它的工作非常好。

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

android android-lifecycle
1个回答
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
}
© www.soinside.com 2019 - 2024. All rights reserved.