如果我关闭我的申请,服务将关闭

时间:2016-06-29 10:20:10

标签: android intentservice

我从应用程序类调用 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

4 个答案:

答案 0 :(得分:1)

您应该使用Service,而不是IntentService。扩展Service类并覆盖onStartCommand方法,然后在此方法中进行计算

答案 1 :(得分:1)

要在销毁应用程序后运行您的服务,您需要执行以下操作。

  1. 使用服务
  2. 扩展您的服务
  3. onStartCommand()
  4. 中返回 START_STICKY
  5. 覆盖 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()中的代码被执行,这将自动停止。