Wylliam Borba Bassos
Wylliam Borba Bassos

Reputation: 56

Reopen Android app after some time when minimized using onPause callback

I'm developing an Android application and for some reason that has not yet been identified at random times it minimizes itself. I want to use the onPause callback function that is called when the app is minimized to programmatically reopen it.

As already mentioned, being able to make a rule to call the application reopening after a while so that it is not reopened immediately using Timer and TimerTask and a Boolean key:

  private Timer mActivityTransitionTimer;
  private TimerTask mActivityTransitionTimerTask;
  public boolean wasInBackground;
  private final long MAX_ACTIVITY_TRANSITION_TIME_MS = 3000;

  @Override
  protected void onPause() {
    super.onPause();
    System.out.println("debug Pause/Resume: --- P A U S E ----");

    startActivityTransitionTimer();
  }

  @Override
  protected void onResume() {
    super.onResume();
    System.out.println("debug Pause/Resume: ---- R E S U M E ---");

    stopActivityTransitionTimer();
  }

  public void stopActivityTransitionTimer() {
    if (this.mActivityTransitionTimerTask != null) {
        this.mActivityTransitionTimerTask.cancel();
    }

    if (this.mActivityTransitionTimer != null) {
        this.mActivityTransitionTimer.cancel();
    }

    this.wasInBackground = false;
  }

  public void startActivityTransitionTimer() {
    this.mActivityTransitionTimer = new Timer();
    this.mActivityTransitionTimerTask = new TimerTask() {
      public void run() {
        wasInBackground = true;
        System.out.println("debug Pause/Resume: --- NEED REOPENE  --");
      }
    };

    this.mActivityTransitionTimer.schedule(
      mActivityTransitionTimerTask,
      MAX_ACTIVITY_TRANSITION_TIME_MS
    );
  }

I need to replace NEED REOPEN log with something that makes the app reopen. I have already tried:

  Intent launchIntent = getPackageManager().getLaunchIntentForPackage("package");
  if (launchIntent != null) {
      startActivity(launchIntent);//null pointer check in case package name was not found
  }

  Intent intent = new Intent(Intent.ACTION_MAIN);
  intent.setComponent(new ComponentName("package","package.Activity"));
  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  startActivity(intent);

Nothing worked, I'm inside an activity

Upvotes: 0

Views: 809

Answers (0)

Related Questions