我从应用程序类调用 service ,如果我关闭应用程序或从当前正在运行的应用程序中删除,那么该服务将自动销毁,我没有在Destroy中编写任何代码()方法
在这里呼叫服务是代码:
public class ScanBLE_Service extends IntentService {
public ScanBLE_Service() {
super(ScanBLE_Service.class.getName());
// TODO Auto-generated constructor stub
mHandler = new Handler();
}
@Override
protected void onHandleIntent(Intent intent) {
// TODO Auto-generated method stub
demo();
}}
private void demo() {
mHandler.removeCallbacksAndMessages(null);
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "Demoooo", Toast.LENGTH_SHORT).show();
demo();
}
}, 5000
);
}
这是服务类的代码
src/main/webapp
答案 0 :(得分:1)
您应该使用Service,而不是IntentService。扩展Service类并覆盖onStartCommand方法,然后在此方法中进行计算
答案 1 :(得分:1)
要在销毁应用程序后运行您的服务,您需要执行以下操作。
覆盖 onTaskRemoved (请参阅以下示例代码)。
公共类MyIntentService扩展了Service { 定时器mTimer;
var foo = myFunction();
console.log(foo[0]); // 'hello world'
console.log(foo[1]); // 'bye world'
答案 2 :(得分:0)
是的,如果申请被关闭,该服务将被关闭。一种情况,当服务不会被关闭以在通知屏幕上有一个持续的通知。 更多here
答案 3 :(得分:0)
正常的行为是,即使应用程序关闭,服务也会继续运行,因为它与应用程序分离并在后台运行,除非你调用stopSelf()或stopService(x,x)它应该继续跑..
PS:还有另一种类型的服务,即IntentService(扩展IntentService而不是Service),一旦onHandleIntent()中的代码被执行,这将自动停止。