Android 服务和广播的使用

Android 服务和广播的使用

服务的使用

建立服务类

 建立一个java文件,取名 mService.java,继承Service。java

public class mService extends Service {}

返回服务控制器git

  /**
     * 绑定服务
     *
     * @param intent
     * @return
     */
    @Override
    public IBinder onBind(Intent intent) {
        return new myControl();
    }

建立一个中间类,来操做服务类方法。github

    /**
     * 中间类
     */
    public class myControl extends Binder {
    
       //  建立方法,可供其余activity内调用
        public void mcontrol(String instructions) {
            // ....
        }
    }    

建立服务app

    /**
     * 建立服务
     */
    @Override
    public void onCreate() {
        super.onCreate();
        // ....建立服务时执行的方法
    }

开启服务ide

    /**
     * 开启服务
     */
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return super.onStartCommand(intent, flags, startId);
    }

activity使用服务

在须要使用服务的activity文件的 onCreate 文件中引入服务并启动this

        // 启动服务
        Intent intent = new Intent(MainActivity.this, mService.class);
        startService(intent);
        conn = new mControl();
        // 绑定服务
        bindService(intent, conn, BIND_AUTO_CREATE);    

建立中间类,用来操做服务中的方法spa

    /**
     * 建立中间件对象
     */
    class mControl implements ServiceConnection {

        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            control = (mService.myControl) service;
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {

        }
    }

当activity中须要调用服务中的方法时code

 control.mcontrol("31");

服务使用就是这样。中间件

广播的使用

发送广播

        // 发送广播
        Intent intent = new Intent();
        intent.putExtra("temValue", temValue);
        intent.setAction("mService");
        sendBroadcast(intent);    

接受广播

在须要接受广播的 activity 中注册广播监听者对象

        // 注册广播监听者
        receiver = new mReceiver();
        IntentFilter filter = new IntentFilter();
        filter.addAction("mService");
        MainActivity.this.registerReceiver(receiver, filter);

建立广播监听者内部类

    // 广播监听者
    public class mReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            Bundle bundle = intent.getExtras();
            temValue.setText(bundle.getString("temValue"));
        }
    }

 

广播简单的用法就这样。

 案例:https://github.com/wjw1014/IntelligentMine/blob/master/app/src/main/java/com/example/admin/mine_feiyang/mService.java

相关文章
相关标签/搜索