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

时间:2015-07-22 14:38:33

标签: android events exit

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

但是当我的应用程序关闭时,所有asynctasks都被杀死,请求也没有被发送到我的网络服务。

2 个答案:

答案 0 :(得分:2)

我终于通过在我的主要活动中放置退出功能并传递和额外来解决这个问题,所以它可以找到我打开它来关闭整个应用程序。这是非常好的解决方案。

像这样调用主要活动:

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可以更好地处理它。我有一个主要活动,使用包含Enum的eventType的ChangePageEventMessage事件加载片段。

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

    }
}

答案 1 :(得分:0)

创建一个YourBasicActivity并覆盖其OnPause()方法并从YourBasicActivity扩展每个Activity

Run code when Android app is closed/sent to background

您还可以尝试onTaskRemoved

How to detect application exit on android?