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

地方性资讯门户网站怎么去推广自己的网站

地方性资讯门户网站,怎么去推广自己的网站,深圳龙岗是穷人区吗,学习网站开发技术摘要:本文基于android平台,设计一种框架并实现对功能的管控和临时的开启。首先,使用SharedPreferences来保存默认状态,因为需要持久化存储,即使在重启或掉电后也能恢复。默认状态是永久开启或关闭,所以需要…

摘要:本文基于android平台,设计一种框架并实现对功能的管控和临时的开启。首先,使用SharedPreferences来保存默认状态,因为需要持久化存储,即使在重启或掉电后也能恢复。默认状态是永久开启或关闭,所以需要有一个地方存储当前的默认状态:表示是永久开启还是永久关闭。其次,创建一个BroadcastReceiver,监听指定的广播动作。当接收到广播时,解析三个参数,并进行参数校验。例如,检查mode是否为“permanent”或“temporary”,status是否为“enable”或“disable”,time是否为有效的正整数(当mode是临时且status是开启时)。根据当前的默认状态和接收到的参数,执行相应的逻辑。最后,处理临时任务的生命周期。例如,当设备重启或掉电时,临时任务会被取消,但默认状态保持不变。因此,在应用启动时,应该检查是否有正在进行的临时任务,但根据需求,重启后不需要处理未完成的倒计时,直接恢复默认状态即可。另外,当处于临时开启状态时,如果再次收到临时开启的请求,需要取消现有的倒计时,重新开始新的倒计时。这需要管理当前的倒计时实例,可能使用一个成员变量来持有CountDownTimer,并在需要时取消它。

在AndroidManifest.xml注册广播接收器:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /><receiver android:name=".MyReceiver"android:exported="true"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED" /><action android:name="android.intent.settings.XXX_XXX" /></intent-filter>
</receiver><receiverandroid:name=".MyReceiver$BootReceiver"android:enabled="true"android:exported="true"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED" /></intent-filter>
</receiver>

实现代码(详见注释说明):

管控逻辑:

  1. 功能默认永久关闭
  2. 功能处于永久开启状态时:
    (1) 收到永久关闭请求时,永久关闭
    (2) 收到永久开启/临时开启请求时,显示已永久开启
  3. 功能处于永久关闭状态时:
    (1) 收到永久开启请求时,永久开启
    (2) 收到临时开启请求时,临时开启,倒计时,显示信息(临时开启,功能持续时间n分钟)
  4. 功能处于临时开启状态时:
    (1) 收到临时开启请求时,刷新计时时间,显示信息(功能已经处于临时开启状态,更新持续时间n分钟)
    (2) 收到永久开启/关闭请求时,永久开启/关闭
    (3) 倒计时时间到或者重启设备或者掉电后,开机恢复默认状态
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.CountDownTimer;
import android.widget.Toast;public class MyReceiver extends BroadcastReceiver {private static final String PREF_NAME = "xxx_config";private static final String KEY_MODE = "permanent_mode";  // 只保存永久状态private static final String KEY_STATUS = "permanent_status";// 临时任务相关(内存存储)private static CountDownTimer currentTimer;private static String tempBaseStatus; // 临时状态的基础状态@Overridepublic void onReceive(Context context, Intent intent) {if (!"android.intent.settings.XXX_XXX".equals(intent.getAction())) return;// 解析参数String mode = intent.getStringExtra("mode");String status = intent.getStringExtra("status");int time = intent.getIntExtra("time", 0);if (!validateParams(mode, status, time)) {Toast.makeText(context, "参数错误", Toast.LENGTH_SHORT).show();return;}SharedPreferences sp = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);String savedMode = sp.getString(KEY_MODE, "permanent");String savedStatus = sp.getString(KEY_STATUS, "disable");handleCommand(context, mode, status, time, sp, savedStatus);}private boolean validateParams(String mode, String status, int time) {if (!"permanent".equals(mode) && !"temporary".equals(mode)) return false;if (!"enable".equals(status) && !"disable".equals(status)) return false;if ("temporary".equals(mode) && "enable".equals(status) && time <= 0) return false;return true;}private void handleCommand(Context context, String cmdMode, String cmdStatus, int time,SharedPreferences sp, String savedStatus) {// 当前是否有临时任务boolean hasTempTask = (currentTimer != null);if ("permanent".equals(cmdMode)) {handlePermanentCommand(context, cmdStatus, sp, savedStatus, hasTempTask);} else {handleTemporaryCommand(context, cmdStatus, time, sp, savedStatus, hasTempTask);}}private void handlePermanentCommand(Context context, String cmdStatus, SharedPreferences sp, String savedStatus,boolean hasTempTask) {if (hasTempTask) {cancelCurrentTimer();revertToSavedState(context, sp);}if (!savedStatus.equals(cmdStatus)) {updatePermanentState(sp, cmdStatus);if ("enable".equals(cmdStatus)) {performEnableAction(context);} else {performDisableAction(context);}} else {Toast.makeText(context, "状态未变化", Toast.LENGTH_SHORT).show();}}private void handleTemporaryCommand(Context context, String cmdStatus, int time,SharedPreferences sp, String savedStatus,boolean hasTempTask) {if (!"enable".equals(cmdStatus)) return;if (hasTempTask) {cancelCurrentTimer();} else {tempBaseStatus = savedStatus; // 记录基础状态}startTemporaryTask(context, time, sp);performEnableAction(context);}private void startTemporaryTask(Context context, int time, SharedPreferences sp) {currentTimer = new CountDownTimer(time * 1000L, 1000) {public void onTick(long millisUntilFinished) {}public void onFinish() {revertToSavedState(context, sp);currentTimer = null;}}.start();}private void revertToSavedState(Context context, SharedPreferences sp) {String savedStatus = sp.getString(KEY_STATUS, "disable");if ("disable".equals(savedStatus)) {performDisableAction(context);}}private void updatePermanentState(SharedPreferences sp, String status) {sp.edit().putString(KEY_MODE, "permanent").putString(KEY_STATUS, status).apply();}private void cancelCurrentTimer() {if (currentTimer != null) {currentTimer.cancel();currentTimer = null;}}// 开机状态恢复public static class BootReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {SharedPreferences sp = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);String status = sp.getString(KEY_STATUS, "disable");if ("enable".equals(status)) {performEnableAction(context);} else {performDisableAction(context);}}}// 实际功能操作(示例)private static void performEnableAction(Context context) {// 系统级操作Toast.makeText(context, "功能已启用", Toast.LENGTH_SHORT).show();}private static void performDisableAction(Context context) {// 系统级操作Toast.makeText(context, "功能已禁用", Toast.LENGTH_SHORT).show();}
}

文章转载自:

http://Gf2B0Llv.cmnLt.cn
http://vgnmNTSj.cmnLt.cn
http://Vx4L1YQg.cmnLt.cn
http://wMuNdzWw.cmnLt.cn
http://STA7pCSW.cmnLt.cn
http://jHDuvNhg.cmnLt.cn
http://9IMvNuyu.cmnLt.cn
http://xy9brEYF.cmnLt.cn
http://Ina3jtRz.cmnLt.cn
http://WhwQrg35.cmnLt.cn
http://GYP6f20D.cmnLt.cn
http://hBMg7A1l.cmnLt.cn
http://npS14A9d.cmnLt.cn
http://SVLMEKNF.cmnLt.cn
http://jEuir7sh.cmnLt.cn
http://yYJZWZ8d.cmnLt.cn
http://at7UvICU.cmnLt.cn
http://b9LUP3nJ.cmnLt.cn
http://7gxhX2bp.cmnLt.cn
http://XHyyxaCh.cmnLt.cn
http://4IYyLRyi.cmnLt.cn
http://InHgn5Oh.cmnLt.cn
http://HlxGOTRG.cmnLt.cn
http://2uVYaKg8.cmnLt.cn
http://3KTfIxPz.cmnLt.cn
http://zQr3lPX6.cmnLt.cn
http://VrYQR5BF.cmnLt.cn
http://ubGjgA8n.cmnLt.cn
http://uGC7jzl3.cmnLt.cn
http://eQlgQqjU.cmnLt.cn
http://www.dtcms.com/wzjs/687749.html

相关文章:

  • 专业网站建设制做的网站如何投入搜索引擎
  • 学院网站建设 需求分析wordpress图片批量链接
  • 临沂建设网站公司wordpress 插件 调用
  • 如何做psd的模板下载网站公关公司排行榜
  • 勐海县城乡建设局门户网站成都建设银行官方网站
  • 我们为什么选择做电子商务网站网页制作与网页设计简历
  • 无锡网站建设排名丹东市住房与城乡建设厅网站
  • 商城微网站建设cnc强力磁盘 东莞网站建设
  • 给网站做脚本算违法吗什么网站可以看女人唔易做
  • 微信公众号怎么做微网站网站控制面板地址
  • 中山皇冠建设开发有限公司网站美食网站制作代码
  • 凡科网站制作关键词挖掘工具
  • 西安找建网站公司网页设计app软件
  • 衡水网站开发报价什么网站可以做期刊封面
  • 怎样进入建设通网站wordpress 不显示时间
  • 怎样提高网站流量中国商品价格网
  • 网站设计网页主页介绍网站设计是什么
  • 平面设计最好的网站企业邮箱什么样子
  • 一站式装修公司有哪些上海有名的做网站的公司有哪些
  • 潮州专业网站建设报价网站平台开发报价单
  • 公司网站需要程序员做吗菏泽市网站建设
  • 外贸网站推广制作教程上海 网络推广
  • 宝安专业网站设计公司自动化设备东莞网站建设
  • 网站建设 php怎么样备份网站数据
  • 整合营销传播企业seo多少费用
  • 如何网站开发语言wordpress主题hestia
  • 公司让做网站违法计算机专业做网站的开题报告
  • 网站转化排名优化课程
  • 说明多媒体教学网站开发的一般步骤做驾校题目用什么网站好
  • 六安市网站建设房地产交易网站