我创建了一个应用程序,当应用程序进入后台时我想启动服务,当应用程序在前台时停止服务。 我使用onPause()和onResume(),但我必须在每个活动中处理它。因此,当我从一个活动转移到另一个活动时,它会被调用。
答案 0 :(得分:3)
使用布尔标志。
boolean movingInApp = false;
....
movingInApp = true;
Intent intent...
.....
public void onPause() {
if(!movingInApp) {
//start service
}
}
public void onResume() {
movingInApp = false;
//Stop service
}
通过在启动任何意图等之前将movingInApp
的值设置为true,您可以阻止您的应用启动该服务。请务必稍后在onResume()
方法中将其重新设置为false。如果系统让您的应用程序转到后台,那么这将是错误的,您的服务将会启动。
答案 1 :(得分:0)
我使用了onPause()和onResume(),但我必须在每个活动中处理它。
创建“基础”Activity
...
public class MyBaseActivity extends Activity {
// Put any methods you need here that are common to all of your Activities
}
然后只需为您创建的所有Activity
课程扩展您的基础Activity
...
public class ActivityOne extends MyBaseActivity {
...
}
通过这种方式,您的所有Activities
都会自动处理您需要执行的操作。