当前位置: 首页 > news >正文

wordpress4.9邮件发送百度快照优化的优势是什么

wordpress4.9邮件发送,百度快照优化的优势是什么,佛山网站维护,书店网站模板文章目录 1.收发应用广播1.标准广播2.有序广播3.广播的静态注册 2.监听系统广播1.接受分钟到达广播2.接受网络变更广播3.定时管理器AlarmManager 3.捕捉屏幕的变更事件1.竖屏和横屏切换2.回到桌面与切换到任务列表 1.收发应用广播 1.标准广播 广播的收发过程分为三个步骤 发送标准广播定义广播接收器开关广播接收器 public class BroadStandardActivity extends AppCompatActivity implements View.OnClickListener {private StandardReceiver standardReceiver;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_broad_standard);findViewById(R.id.btn_send_standard).setOnClickListener(this);}Overridepublic void onClick(View view) {Intent intent new Intent(com.zzzjian.demo7.standard);sendBroadcast(intent);}Overrideprotected void onStart() {super.onStart();standardReceiver new StandardReceiver();// 创建意图过滤器 只处理 com.zzzjian.demo7.action.standard 这个动作IntentFilter filter new IntentFilter(StandardReceiver.STANDARD_ACTION);// 注册接收器 注册之后才能正常接受广播registerReceiver(standardReceiver, filter);}Overrideprotected void onStop() {super.onStop();// 注销接收器 注销之后就不再接受广播unregisterReceiver(standardReceiver);} }public class StandardReceiver extends BroadcastReceiver {private static final String TAG StandardReceiver;public static final String STANDARD_ACTION com.zzzjian.demo7.standard;/*** 一旦收到标准广播马上触发接收器的onReceive方法* param context* param intent*/Overridepublic void onReceive(Context context, Intent intent) {if(intent ! null intent.getAction().equals(STANDARD_ACTION)){Log.d(TAG, 收到一个标准广播);}} }2.有序广播 一个广播存在多个接收器这些接收器需要排队收听广播这意味着该广播是条有序广播。先收到广播的接收器既可以让其他接收器继续收听广播也可以中断广播不让其他接收器收听。 public class BroadOrderActivity extends AppCompatActivity implements View.OnClickListener {public static final String ORDER_ACTION com.zzzjian.demo7.order;private OrderAReceiver orderAReceiver;private OrderBReceiver orderBReceiver;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_broad_order);findViewById(R.id.btn_send_order).setOnClickListener(this);}Overridepublic void onClick(View v) {Intent intent new Intent(ORDER_ACTION);sendOrderedBroadcast(intent,null);}Overrideprotected void onStart() {super.onStart();// 多个接收器处理有序广播的顺序规则// 1. 先处理优先级最高的接收器// 2. 优先级相同的接收器先注册先处理orderAReceiver new OrderAReceiver();IntentFilter filterA new IntentFilter(ORDER_ACTION);filterA.setPriority(8);if (Build.VERSION.SDK_INT Build.VERSION_CODES.O) {registerReceiver(orderAReceiver, filterA, Context.RECEIVER_EXPORTED);}orderBReceiver new OrderBReceiver();IntentFilter filterB new IntentFilter(ORDER_ACTION);filterB.setPriority(10);if (Build.VERSION.SDK_INT Build.VERSION_CODES.O) {registerReceiver(orderBReceiver, filterB, Context.RECEIVER_EXPORTED);}}Overrideprotected void onStop() {super.onStop();unregisterReceiver(orderAReceiver);unregisterReceiver(orderBReceiver);} }public class OrderAReceiver extends BroadcastReceiver {private static final String TAG OrderReceiver;Overridepublic void onReceive(Context context, Intent intent) {if(intent ! null intent.getAction().equals(BroadOrderActivity.ORDER_ACTION)){Log.d(TAG, 收到一个有序广播A);}} } public class OrderBReceiver extends BroadcastReceiver {private static final String TAG OrderReceiver;Overridepublic void onReceive(Context context, Intent intent) {if(intent ! null intent.getAction().equals(BroadOrderActivity.ORDER_ACTION)){Log.d(TAG, 收到一个有序广播B);// 中断广播abortBroadcast();}} } 3.广播的静态注册 public class BroadStaticActivity extends AppCompatActivity implements View.OnClickListener {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_broad_static);findViewById(R.id.btn_send_shock).setOnClickListener(this);}Overridepublic void onClick(View v) {// 8.0之后必须指定完整类名String fullName com.zzzjian.demo7.receiver.ShockReceiver;Intent intent new Intent(ShockReceiver.SHOCK_ACTION);// 创建一个ComponentName对象指定当前上下文和接收器全名ComponentName componentName new ComponentName(this, fullName);intent.setComponent(componentName);sendBroadcast(intent);} }public class ShockReceiver extends BroadcastReceiver {public static final String SHOCK_ACTION com.zzzjian.demo7.shock;Overridepublic void onReceive(Context context, Intent intent) {if(intent ! null intent.getAction().equals(SHOCK_ACTION)){Log.d(ShockReceiver, 震动);// 从系统服务获取震动管理器Vibrator vb (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);// 震动 500msvb.vibrate(500);}} }?xml version1.0 encodingutf-8? manifest xmlns:androidhttp://schemas.android.com/apk/res/androiduses-permission android:nameandroid.permission.VIBRATE/applicationandroid:allowBackuptrueandroid:iconmipmap/ic_launcherandroid:labelstring/app_nameandroid:roundIconmipmap/ic_launcher_roundandroid:supportsRtltrueandroid:themestyle/Theme.MyApplicationreceiverandroid:name.receiver.ShockReceiverandroid:enabledtrueandroid:exportedtrueintent-filteraction android:namecom.zzzjian.demo7.shock //intent-filter/receiveractivityandroid:name.BroadStaticActivityandroid:exportedtrueintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activity/application/manifest2.监听系统广播 1.接受分钟到达广播 Intent.ACTION_TIME_TICK public class SystemMinteActivity extends AppCompatActivity {private TimeReceiver timeReceiver;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_system_minte);}Overrideprotected void onStart() {super.onStart();timeReceiver new TimeReceiver();IntentFilter filter new IntentFilter(Intent.ACTION_TIME_TICK);registerReceiver(timeReceiver,filter);}Overrideprotected void onStop() {super.onStop();unregisterReceiver(timeReceiver);} }public class TimeReceiver extends BroadcastReceiver {private static final String TAG TimeReceiver;Overridepublic void onReceive(Context context, Intent intent) {if(intent ! null){Log.d(TAG,收到一个分钟到达的广播);}} } 2.接受网络变更广播 android.net.conn.CONNECTIVITY_CHANGE getType获取网络类型 网络类型说明TYPE_WIFI无线热点WIFITYPE_MOBILE数据连接TYPE_WIMAXWiMAXTYPE_ETHERNET以太网TYPE_BLUETOOTH蓝牙TYPE_VPN虚拟专用网络VPN getTypeName获取网络类型名称 getSubtype获取网络的子类型。如果为数据连接时子类型为2G/3G/4G等细分。 3.定时管理器AlarmManager Android提供了专门的定时管理器AlarmManager它利用系统闹钟定时发送广播常见方法有 set设置一次性定时器。setAndAllowWhileIdle设置一次性定时器即使设备处于空闲状态也会保证执行定时器。setRepeating设置重复定时器但系统不保证按时发送广播。cancel取消延迟意图的定时器。 public class AlarmActivity extends AppCompatActivity implements View.OnClickListener {private AlarmReceiver alarmReceiver;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_alarm);findViewById(R.id.btn_alarm).setOnClickListener(this);}Overridepublic void onClick(View v) {alarmReceiver.sendAlarm();}protected void onStart() {// 调用父类的onStart方法super.onStart();// 创建AlarmReceiver实例并传入当前应用的上下文// 这里假设AlarmReceiver是一个自定义的BroadcastReceiver子类alarmReceiver new AlarmReceiver(getApplicationContext());// 创建IntentFilter对象用于过滤接收到的广播// 指定接收的广播动作为AlarmReceiver.ALARM_ACTIONIntentFilter filter new IntentFilter(AlarmReceiver.ALARM_ACTION);// 检查Android SDK版本是否大于等于Oreo8.0// Android Oreo引入了一些新的API和行为变化if (Build.VERSION.SDK_INT Build.VERSION_CODES.O) {// 注册BroadcastReceiver// 参数分别为要注册的BroadcastReceiver实例、IntentFilter对象、注册标志// Context.RECEIVER_EXPORTED表示此BroadcastReceiver可以被其他应用访问registerReceiver(alarmReceiver, filter, Context.RECEIVER_EXPORTED);}}Overrideprotected void onStop() {super.onStop();unregisterReceiver(alarmReceiver);} }public class AlarmReceiver extends BroadcastReceiver {public static final String ALARM_ACTION com.zzzjian.demo7.alarm;private final Context mContext;public AlarmReceiver(Context context){super();this.mContext context;}Overridepublic void onReceive(Context context, Intent intent) {if(intent ! null intent.getAction().equals(ALARM_ACTION)){Log.d(AlarmReceiver,收到一个闹钟的广播);}}public void sendAlarm(){// 创建一个Intent对象指定动作类型为ALARM_ACTIONIntent intent new Intent(ALARM_ACTION);// 创建一个PendingIntent对象用于稍后触发Intent// 第二个参数为请求码在此设置为0第三个参数为Intent对象第四个参数为标志位设置为FLAG_IMMUTABLE表示PendingIntent不可变PendingIntent pendingIntent PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_IMMUTABLE);// 获取系统服务AlarmManager用于管理定时任务AlarmManager alarmManager (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);// 设置定时任务当设备空闲时也可以唤醒设备执行任务// 参数分别为AlarmManager设置类型、触发时间从1970年1月1日00:00:00 GMT开始计算的毫秒数、待执行的PendingIntent// 注释掉的代码为另一种设置方式不支持设备空闲时唤醒// alarmManager.set(AlarmManager.RTC_WAKEUP, 1000, pendingIntent);if(Build.VERSION.SDK_INT Build.VERSION_CODES.M){alarmManager.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, 1000, pendingIntent);}else{alarmManager.set(AlarmManager.RTC_WAKEUP, 1000, pendingIntent);}}} 3.捕捉屏幕的变更事件 1.竖屏和横屏切换 为了避免横竖屏切换时重新加载界面的情况Android设计了一种配置变更机制在指定的环境配置发生变更之时无需重启活动页面只需执行特定的变更行为。该机制分为两步 修改AndroidManifest.xml给activity节点增加android:configChange属性修改活动页面的Java代码重写活动的onCinfigurationChanged方法补充对应的代码处理逻辑。 onfigChanges属性的取值说明orientation屏幕方向发生变化screenLayout屏幕的显示发生改变例如在全屏和分屏之间切换screenSize屏幕大小发生改变例如在竖屏和横屏之间切换keyboard键盘发生改变例如使用了外部键盘keyboardHidden软键盘弹出或隐藏navigation导航方式发生改变例如采用了轨迹球导航fontSize字体比例发生改变locale设备本地位置发生改变例如切换了系统语言uiMode用户界面的模式发生改变例如开启了夜间模式 activityandroid:name.ChangeDirectionActivityandroid:exportedtrueandroid:themestyle/Theme.MyApplicationandroid:configChangesorientation|screenLayout|screenSizeintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activitypublic class ChangeDirectionActivity extends AppCompatActivity {private static final String TAG ChangeDirectionActivity;private TextView tv_monitor;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);EdgeToEdge.enable(this);setContentView(R.layout.activity_change_direction);tv_monitor findViewById(R.id.tv_monitor);Log.d(TAG, onCreate);}Overridepublic void onConfigurationChanged(NonNull Configuration newConfig) {super.onConfigurationChanged(newConfig);switch (newConfig.orientation){case Configuration.ORIENTATION_PORTRAIT:tv_monitor.setText(竖屏);break;case Configuration.ORIENTATION_LANDSCAPE:tv_monitor.setText(横屏);break;default:break;}} }2.回到桌面与切换到任务列表 按下主页键会回到桌面按下任务键会打开任务列表这两个操作并未提供相应的按键处理方法而是通过广播发出事件信息。如果想知道是否回到桌面以及是否打开任务列表均需收听系统广播Intent.ACTION_CLOSE_SYSTEM_DIALOGS。从收到广播意图中获取原因reason字段该字段值为homekey时表示回到桌面值为recentapps时表示打开任务列表。 public class ReturnDesktopActivity extends AppCompatActivity {private DesktopReceiver desktopReceiver;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_return_desktop);desktopReceiver new DesktopReceiver();IntentFilter filter new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);if (Build.VERSION.SDK_INT Build.VERSION_CODES.O) {registerReceiver(desktopReceiver,filter, Context.RECEIVER_EXPORTED);}}Overrideprotected void onDestroy() {super.onDestroy();unregisterReceiver(desktopReceiver);}Overridepublic void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {super.onPictureInPictureModeChanged(isInPictureInPictureMode);if(isInPictureInPictureMode){Log.d(ReturnDesktopActivity, 进入小窗模式);}else{Log.d(ReturnDesktopActivity, 退出小窗模式);}}private class DesktopReceiver extends BroadcastReceiver{Overridepublic void onReceive(Context context, Intent intent) {if(intent ! null intent.getAction().equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)){String reason intent.getStringExtra(reason);if(!TextUtils.isEmpty(reason) (reason.equals(home) || reason.equals(recentapps))){if(Build.VERSION.SDK_INT Build.VERSION_CODES.O !isInPictureInPictureMode()){PictureInPictureParams.Builder builder new PictureInPictureParams.Builder();Rational aspectRatio new Rational(10, 5);builder.setAspectRatio(aspectRatio);enterPictureInPictureMode(builder.build());}}}}} }activityandroid:name.ReturnDesktopActivityandroid:configChangesorientation|screenLayout|screenSizeandroid:exportedtrueandroid:screenOrientationportraitandroid:supportsPictureInPicturetrueandroid:themestyle/Theme.MyApplicationintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activity
http://www.yayakq.cn/news/3703/

相关文章:

  • php网站建设设计制作陕西省建设工程质量安全监督总站网站
  • 梦幻西游网页版官方网站菏泽专业网站开发公司
  • 门户网站排行榜phpwind和wordpress
  • 网站开发的硬件设备有全球域名注册商
  • 福建商城网站制作公司最新站长seo网站外链发布平台
  • 什么网站可以做excel表格中国工程建设标准化网站
  • 建设银行网站设计的优点网站建设结算系统
  • 网站空间大小选择中企动力建设的网站如何修改
  • 电商网站在线支付怎么做内网网站开发费用
  • 新乡谷雨网络公司做的网站怎么样p2p网站 开发
  • 做网站租服务器一年多少钱wordpress双语站
  • 网站后台管理系统 静态页面长沙微推广平台
  • 公司网站建设有用吗网站开发设计框图
  • 自己的网站怎样做优化wordpress搜索提示
  • 免备案网站主机wordpress上传源码
  • oto网站开发wordpress文章固定字段
  • 网站教程dw营销型网站建设实战》
  • 网站建设及运营服务流程北京企业建站服务中企
  • 做网站用什么编程语言好wordpress neoease
  • 网站改版iis301跳转如何做网站制作1000元
  • 商业网站建设视频教程菏泽网站备案拍照
  • 孝感公司做网站做消费金融网站
  • 建设银行签名通在网站哪里下载手机麻将软件定制开发
  • 网站如何免费推广网络营销推广方案案例分析
  • iis 创建网站上海市最新消息今天
  • 网站开发具体步骤渝叶购零售客户电商网站
  • 创建网站公司 徐州大连网站建设培训班
  • 衡水企业做网站多少钱装饰设计风格
  • 沙井网站建设公司电子商务网站建设的市场分析
  • 网站怎么做外链知乎徐州建设安全监督网站