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

时间:2018-01-03 07:06:29

标签: android android-lifecycle

我创建了一个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

1 个答案:

答案 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
}