如何管理 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:
.
.
.
.
}
}
我必须在应用程序退出前向我的服务器发送一些请求。
但是当我的应用程序关闭时,所有异步任务都被终止并且请求不会发送到我的网络服务。
创建一个 YourBasicActivity 并覆盖它的 OnPause()
方法并从 YourBasicActivity
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:
.
.
.
.
}
}