如何管理 OnApp 退出事件并在应用关闭前执行某些操作?

How can I manage OnApp exit event and do something before app closes?

我必须在应用程序退出前向我的服务器发送一些请求。

但是当我的应用程序关闭时,所有异步任务都被终止并且请求不会发送到我的网络服务。

创建一个 YourBasicActivity 并覆盖它的 OnPause() 方法并从 YourBasicActivity

扩展每个 Activity

Run code when Android app is closed/sent to background

你也可以试试onTaskRemoved

How to detect application exit on android?

我终于解决了这个问题,方法是将退出函数放在我的主 activity 中并传递和额外的,这样它就可以发现我打开它是为了关闭整个应用程序。这是非常好的解决方案。

像这样调用 main activity:

Intent i = new Intent(G.currentActivity, MainActivity.class);
        i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        i.putExtra("isExit", true);

并像这样获得额外的:

private void getExtras() {
Intent myIntent = getIntent();
if (myIntent.getBooleanExtra("isExit", false)) {
    showExitDialog(MainActivity.this);
    }
  }

更新: 用Eventbus可以更好的处理。我有 main activity 加载带有 ChangePageEventMessage 事件的片段,该事件包含 Enum 的 eventType。

public onEvent(ChangePageEventMessage event){
    switch(event.getType()){
       case appExit: dosomething();
                     System.exit(0);
                     break;
       case detail:
.
.
.
.

    }
}