android四大组件-----广播

https://developer.android.com/guide/components/broadcasts

System broadcast

application broadcast

1.常见的系统广播

https://www.cnblogs.com/SamLXW/p/6409217.html

系统广播的监听

android 四大组件 acitivity service contentProvider brocoast

 //注册广播 动态注册的广播比较好 省电

 

 

 

2 发起者

3接收者

一  广播接收者

Broadcast Receiver

二 广播类型

1 普通广播 通过 Context.sendBroadcast (intent)

2有序广播 通过 Context.sendOrderedBroadcase(intent,receiverPermission)

2.1截断广播  abortBroadcast

3 异步广播 context.sendStickyBroadcast(intent)

sendStickyOrderedBroadcase

三 监听广播

1 写一个类继承 Broadcast Receiver

2 重写 onReceive

3 SMSBroadReceivrer 注册广播接收者

1 静态注册

<receiver>

 

</receiver>

2 动态注册

IntentFilter intentFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED")

registerReceiver(mBatteryInfoReceiver.intentFilter)

取消注册

unregisterReceier(receiver)

 

 

广播生命周期只有10秒

注册广播

  <receiver android:name=".MyBroad">
          <intent-filter>
              <action android:name="com.yifei.myapplication.MyBroad"

                  />
          </intent-filter>
        </receiver>

发送广播

      btn = findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setAction("com.yifei.myapplication.MyBroad");
               sendBroadcast(intent);
            }
        });

接收广播  在 主线程里做  只有10 秒   小心 .....  可以在里面在开一个子线程

//创建广播接收者
public class MyBroad extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d(MainActivity.TAG, "onReceive: ");
    }
}

动态注册 以及销毁广播

package com.yifei.myapplication;

import android.content.Intent;
import android.content.IntentFilter;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    public static  String TAG ="MainActivity12";
    private Button btn,btn1;
    private MyService myService;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        btn1 = findViewById(R.id.btn1);
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //发送广播
                Intent intent =new Intent(MyService.receiver);
                sendBroadcast(intent);
            }
        });
        //动态注册广播 接收者
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(MyService.receiver);
        myService = new MyService();
        registerReceiver(myService, intentFilter);

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(myService);
    }
}

广播 

public class MyService extends BroadcastReceiver {
    public static final String receiver ="com.yifei.myapplication.MyService";
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d(MainActivity.TAG, "onReceive: MyService");
    }
}

一个简单的自定义广播 可以跨activity 使用

Mainactivity
package com.yifei.myapplication;

import android.content.Intent;
import android.content.IntentFilter;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class SecondActivity extends AppCompatActivity implements View.OnClickListener{

    private EditText input;
    private Button btn;
    private TextView text;
    private ImoocBroadcast imoocBroadcast;
    private static final String TAG = "SecondActivity";
    public static String ACTION_CUSTOM= "com.yifei.cmbs";;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        initView();
        initBroad();
        btn.setOnClickListener(this);
    }

    private void initBroad() {
        // 新建广播接收器
        imoocBroadcast = new ImoocBroadcast(text);

        //注册广播接收器
        IntentFilter intentFilter = new IntentFilter();
//        intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
//        intentFilter.addDataScheme("package");
        intentFilter.addAction(ACTION_CUSTOM);
        registerReceiver(imoocBroadcast,intentFilter);

    }

    private void initView() {
        input = findViewById(R.id.input);
        btn = findViewById(R.id.btn);
        text = findViewById(R.id.textReciver);

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(imoocBroadcast);
    }

    //点击按钮 发送广播
    @Override
    public void onClick(View view) {
        Intent intent = new Intent(ACTION_CUSTOM);
        intent.putExtra("broadcastIntent",input.getText().toString());
        sendBroadcast(intent);

    }
}


Broadcast

把接收到的消息传回到 activity
package com.yifei.myapplication;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import android.util.Log;
import android.widget.TextView;

public class ImoocBroadcast extends BroadcastReceiver {
    private static final String TAG = "ImoocBroadcast";
    private TextView textView;

    public ImoocBroadcast() {
    }

    public ImoocBroadcast(TextView textView) {
        this.textView = textView;
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        //接收广播
        if (intent != null) {
            //接收到的是什么广播
            String action = intent.getAction();
            //判断是不是我们自己发送的自定义广播
            if (TextUtils.equals(action, SecondActivity.ACTION_CUSTOM)) {
                String data = intent.getStringExtra("broadcastIntent");
                Log.d(TAG, "onReceive: " + data);
                if(textView!=null){
                    textView.setText(data);
                }
            }


        }
    }
}


跨应用的广播

 

基于SSM框架的智能家政保洁预约系统,是一个旨在提高家政保洁服务预约效率和管理水平的平台。该系统通过集成现代信息技术,为家政公司、家政服务人员和消费者提供了一个便捷的在线预约和管理系统。 系统的主要功能包括: 1. **用户管理**:允许消费者注册、登录,并管理他们的个人资料和预约历史。 2. **家政人员管理**:家政服务人员可以注册并更新自己的个人信息、服务类别和服务时间。 3. **服务预约**:消费者可以浏览不同的家政服务选项,选择合适的服务人员,并在线预约服务。 4. **订单管理**:系统支持订单的创建、跟踪和管理,包括订单的确认、完成和评价。 5. **评价系统**:消费者可以在家政服务完成后对服务进行评价,帮助提高服务质量和透明度。 6. **后台管理**:管理员可以管理用户、家政人员信息、服务类别、预约订单以及处理用户反馈。 系统采用Java语言开发,使用MySQL数据库进行数据存储,通过B/S架构实现用户与服务的在线交互。系统设计考虑了不同用户角色的需求,包括管理员、家政服务人员和普通用户,每个角色都有相应的权限和功能。此外,系统还采用了软件组件化、精化体系结构、分离逻辑和数据等方法,以便于未来的系统升级和维护。 智能家政保洁预约系统通过提供一个集中的平台,不仅方便了消费者的预约和管理,也为家政服务人员提供了一个展示和推广自己服务的机会。同时,系统的后台管理功能为家政公司提供了强大的数据支持和决策辅助,有助于提高服务质量和管理效率。该系统的设计与实现,标志着家政保洁服务向现代化和网络化的转型,为管理决策和控制提供保障,是行业发展中的重要里程碑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值