zoukankan      html  css  js  c++  java
  • Service 中的 onStart 和 onStartCommand

    在自定义的service中,写了onStart和onStartCommand,

    public class HttpWebService extends Service {
    
    
    

    @Override
    public void onCreate() {
    super.onCreate();

    ....
    
    @Override
        public void onStart(Intent intent, int startId) {
            // this will trigger AbstractBackgroundService.onStart()
            super.onStart(intent, startId);
            Log.d(LOG_TAG, "onStart" + intent); 
        }
    
        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {
            int retVal = super.onStartCommand(intent, flags, startId);
            Log.d(LOG_TAG, "onStartCommand" + intent);
     
            return retVal;
        }
    
    
    }

    如果用 bindService 这种方式调用,onStart和onStartCommand都不会被调用到

      this.bindService(new Intent(this, HttpWebService.class),
             new ServiceConnection() {
            
             @Override
             public void onServiceConnected(ComponentName name,
             IBinder service) {
            HttpWebService webService = ((HttpWebService.LocalBinder) service)
             .getService();
             webService.SetServerListener(webListener);
             }
            
             @Override
             public void onServiceDisconnected(ComponentName name) {
            
             }
             }, Context.BIND_AUTO_CREATE);

    如果是用StartService调用,两个都被调用到

    Intent intent = new Intent("com.example.sharefiles.services.ShareServices.Test");
            intent.setClass(getApplicationContext(), HttpWebService.class);            
            intent.putExtra("enable", true);
        
            this.startService(intent);

    查看google 文档

    http://developer.android.com/reference/android/app/Service.html 

    onStart(Intent intent, int startId)

    This method was deprecated in API level 5. Implement onStartCommand(Intent, int, int) instead.

    onStartCommand(Intent intent, int flags, int startId)

    Called by the system every time a client explicitly starts the service by calling startService(Intent), providing the arguments it supplied and a unique integer token representing the start request.

    鉴于目前的代码基本都是运行在API5 以上的,所以直接干掉onStart.

  • 相关阅读:
    context:component-scan报错
    goland 实用键
    React-Native 指定模拟器RUN-IOS
    mac 卸载编辑器卸不干净
    go 区分指针
    go 学习Printf
    我的命令行
    mysql8的坑
    小三角
    eslint 禁用命令
  • 原文地址:https://www.cnblogs.com/xiaokang088/p/4191814.html
Copyright © 2011-2022 走看看