信息发布软件,b2b软件,广告发布软件

 找回密码
 立即注册
搜索
查看: 1|回复: 0
打印 上一主题 下一主题

[宣传软件网站动态] AIWROK使用activity列表开关与进度条的协同交互

[复制链接]

781

主题

865

帖子

5542

积分

积分
5542

资讯缩略图:

资讯发布日期:2026-06-29

资讯发布简介:AIWROK使用activity列表开关与进度条的协同交互

资讯关键词:AIWROK使用activity列表开关与进度条的协同交互

资讯所属分类:IT资讯 

联系:

① 本信息收集于网络,如有不对的地方欢迎联系我纠正!
② 本信息免费收录,不存在价格的问题!
③ 如果您的网站也想这样出现在这里,请您加好友情链接,我当天会审核通过!

④友情链接关键字:软件网站分类目录 网址:http://www.postbbs.com/

资讯详细描述
AIWROK使用activity列表开关与进度条的协同交互
AIWROK使用activity列表开关与进度条的协同交互 b2b软件

  1. /**
  2. * AIWROK使用activity列表开关与进度条的协同交互
  3. *
  4. * 功能亮点:
  5. * 1. 动态 UI 构建:使用 activity 创建包含 ListView、Button、ProgressBar 的复杂界面。
  6. * 2. 状态联动逻辑:实现按钮互斥(执行时禁用添加)、颜色动态切换及透明度反馈。
  7. * 3. 多线程协同:主线程负责 UI 响应,工作线程执行耗时任务并通过 runOnUiThread 安全回更。
  8. * 4. 实时数据同步:顶部状态栏实时显示剩余任务数,进度条下方高亮当前执行项。
  9. * 5. 配置持久化:利用 config 模块保存进度,支持断点续传模拟。
  10. */

  11. // ==================== 全局变量定义 ====================
  12. var ac = null;          // 主窗体对象
  13. var logWindow = null;   // 日志悬浮窗
  14. var taskList = [];      // 任务队列
  15. var isRunning = false;  // 运行状态标志
  16. var progressValue = 0;  // 进度值

  17. // UI 控件引用(全局化以便在线程中访问)
  18. var statusBar, btnStart, btnStop, btnAddTask, progressBar, progressText, currentTaskInfo;

  19. // ==================== 辅助函数(全局作用域) ====================

  20. // 获取已完成任务数
  21. function getCompletedCount() {
  22.     var count = 0;
  23.     for (var i = 0; i < taskList.length; i++) {
  24.         if (taskList[i].status === "已完成") count++;
  25.     }
  26.     return count;
  27. }

  28. // 更新 UI 状态(按钮联动与视觉反馈)
  29. function updateUIState(running) {
  30.     if (!ac) return;
  31.     ac.runOnUiThread(function() {
  32.         try {
  33.             var count = taskList.length;
  34.             var completed = getCompletedCount();
  35.             if (statusBar) statusBar.setText(running ? "执行中... (剩余 " + (count - completed) + ")" : "就绪:剩余 " + count + " 个任务");
  36.             
  37.             // 按钮联动:运行时禁用“开始”和“添加”,启用“停止”
  38.             if (btnStart) {
  39.                 btnStart.setEnabled(!running);
  40.                 btnStart.setAlpha(running ? 0.5 : 1.0); // 禁用时半透明
  41.             }
  42.             if (btnAddTask) {
  43.                 btnAddTask.setEnabled(!running);
  44.                 btnAddTask.setAlpha(running ? 0.5 : 1.0);
  45.             }
  46.             if (btnStop) {
  47.                 btnStop.setEnabled(running);
  48.                 btnStop.setAlpha(1.0);
  49.             }
  50.             
  51.             // 视觉特效:强制设置背景色(比 Tint 更稳定)
  52.             if (running) {
  53.                 if (btnStart) btnStart.setBackgroundColor(android.graphics.Color.parseColor("#CCCCCC")); // 灰色
  54.                 if (btnStop) btnStop.setBackgroundColor(android.graphics.Color.parseColor("#FF0000")); // 鲜红
  55.             } else {
  56.                 if (btnStart) btnStart.setBackgroundColor(android.graphics.Color.parseColor("#4CAF50")); // 绿色
  57.                 if (btnStop) btnStop.setBackgroundColor(android.graphics.Color.parseColor("#F44336")); // 红色
  58.             }
  59.         } catch (e) {
  60.             print.log("UI状态更新异常: " + e.message);
  61.         }
  62.     });
  63. }

  64. // ==================== 初始化函数 ====================
  65. function init() {
  66.     print.log("正在初始化智能任务调度中心...");
  67.    
  68.     // 1. 初始化日志悬浮窗
  69.     initLogWindow();
  70.    
  71.     // 2. 加载历史配置
  72.     loadConfig();
  73.    
  74.     // 3. 创建主控制界面
  75.     createMainUI();
  76.    
  77.     print.log("初始化完成,等待指令。");
  78. }

  79. // ==================== 日志悬浮窗 ====================
  80. function initLogWindow() {
  81.     try {
  82.         logWindow = new floatUI();
  83.         logWindow.loadXML(
  84.             '<LinearLayout orientation="vertical" w="300" h="400" gravity="left">' +
  85.             '  <TextView id="logTitle" text="&#128202; 实时日志" textColor="#FFFFFF" textSize="16" padding="8" background="#333333" />' +
  86.             '  <ScrollView w="match_parent" h="match_parent">' +
  87.             '    <TextView id="logContent" textColor="#00FF00" textSize="12" padding="8" background="#000000" />' +
  88.             '  </ScrollView>' +
  89.             '</LinearLayout>'
  90.         );
  91.         logWindow.setPosition(10, 100);
  92.     } catch (e) {
  93.         print.log("日志悬浮窗初始化失败: " + e.message);
  94.     }
  95. }

  96. function appendLog(msg) {
  97.     if (!logWindow) return;
  98.     var time = new Date().toLocaleTimeString();
  99.     var logMsg = "[" + time + "] " + msg + "\n";
  100.    
  101.     // 在 UI 线程中更新日志内容
  102.     if (ac) {
  103.         ac.runOnUiThread(function() {
  104.             try {
  105.                 var logText = logWindow.findViewById("logContent");
  106.                 if (logText) {
  107.                     var currentText = logText.getText().toString();
  108.                     logText.setText(currentText + logMsg);
  109.                 }
  110.             } catch (e) {}
  111.         });
  112.     }
  113.     print.log(logMsg.trim());
  114. }

  115. // ==================== 主界面构建 ====================
  116. function createMainUI() {
  117.     ac = new activity();
  118.    
  119.     // 复杂的 XML 布局:包含标题、列表、进度条、控制按钮
  120.     ac.loadXML(`
  121.     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  122.         android:layout_width="match_parent"
  123.         android:layout_height="match_parent"
  124.         android:orientation="vertical"
  125.         android:background="#F0F0F0"
  126.         android:padding="16dp">

  127.         <TextView
  128.             android:text="&#128640; 智能任务调度中心"
  129.             android:textSize="24sp"
  130.             android:textColor="#333333"
  131.             android:gravity="center"
  132.             android:layout_marginBottom="20dp" />

  133.         <TextView
  134.             android:id="@+id/statusBar"
  135.             android:text="就绪:等待添加任务"
  136.             android:textSize="14sp"
  137.             android:textColor="#666666"
  138.             android:gravity="center"
  139.             android:layout_marginBottom="10dp" />

  140.         <!-- 任务列表区域 -->
  141.         <ListView
  142.             android:id="@+id/taskListView"
  143.             android:layout_width="match_parent"
  144.             android:layout_height="0dp"
  145.             android:layout_weight="1"
  146.             android:background="#FFFFFF"
  147.             android:divider="#E0E0E0"
  148.             android:dividerHeight="1px" />

  149.         <!-- 进度条 -->
  150.         <ProgressBar
  151.             android:id="@+id/progressBar"
  152.             style="?android:attr/progressBarStyleHorizontal"
  153.             android:layout_width="match_parent"
  154.             android:layout_height="wrap_content"
  155.             android:max="100"
  156.             android:progress="0"
  157.             android:layout_marginTop="10dp" />

  158.         <TextView
  159.             android:id="@+id/progressText"
  160.             android:text="进度: 0%"
  161.             android:gravity="center"
  162.             android:layout_marginTop="5dp" />

  163.         <TextView
  164.             android:id="@+id/currentTaskInfo"
  165.             android:text="当前无正在执行的任务"
  166.             android:textSize="12sp"
  167.             android:textColor="#999999"
  168.             android:gravity="center"
  169.             android:layout_marginTop="5dp" />

  170.         <!-- 控制按钮组 -->
  171.         <LinearLayout
  172.             android:layout_width="match_parent"
  173.             android:layout_height="wrap_content"
  174.             android:orientation="horizontal"
  175.             android:layout_marginTop="20dp">

  176.             <Button
  177.                 android:id="@+id/btnStart"
  178.                 android:text="开始执行"
  179.                 android:layout_width="0dp"
  180.                 android:layout_weight="1"
  181.                 android:layout_marginRight="5dp"
  182.                 android:background="#4CAF50"
  183.                 android:textColor="#FFFFFF" />

  184.             <Button
  185.                 android:id="@+id/btnStop"
  186.                 android:text="停止"
  187.                 android:layout_width="0dp"
  188.                 android:layout_weight="1"
  189.                 android:layout_marginLeft="5dp"
  190.                 android:background="#F44336"
  191.                 android:textColor="#FFFFFF" />
  192.         </LinearLayout>
  193.         
  194.         <Button
  195.             android:id="@+id/btnAddTask"
  196.             android:text="➕ 添加随机任务"
  197.             android:layout_width="match_parent"
  198.             android:layout_height="wrap_content"
  199.             android:layout_marginTop="10dp"
  200.             android:background="#2196F3"
  201.             android:textColor="#FFFFFF" />

  202.     </LinearLayout>
  203.     `);

  204.     // 获取控件引用并赋值给全局变量
  205.     statusBar = ac.findViewById("statusBar");
  206.     btnStart = ac.findViewById("btnStart");
  207.     btnStop = ac.findViewById("btnStop");
  208.     btnAddTask = ac.findViewById("btnAddTask");
  209.     progressBar = ac.findViewById("progressBar");
  210.     progressText = ac.findViewById("progressText");
  211.     currentTaskInfo = ac.findViewById("currentTaskInfo");

  212.     // 绑定事件
  213.     btnStart.setOnClickListener(function() {
  214.         startTasks();
  215.     });

  216.     btnStop.setOnClickListener(function() {
  217.         stopTasks();
  218.     });

  219.     btnAddTask.setOnClickListener(function() {
  220.         addRandomTask();
  221.     });

  222.     // 初始渲染列表
  223.     updateTaskList();
  224.     updateUIState(false); // 初始化按钮状态
  225.     appendLog("主界面已就绪");
  226. }

  227. // ==================== 业务逻辑 ====================

  228. // 模拟任务数据
  229. var taskTemplates = [
  230.     { name: "数据备份", duration: 3000 },
  231.     { name: "图片压缩", duration: 2000 },
  232.     { name: "日志上传", duration: 4000 },
  233.     { name: "缓存清理", duration: 1500 },
  234.     { name: "系统检测", duration: 2500 }
  235. ];

  236. function addRandomTask() {
  237.     var template = taskTemplates[Math.floor(Math.random() * taskTemplates.length)];
  238.     var newTask = {
  239.         id: new Date().getTime(),
  240.         name: template.name + "_" + Math.floor(Math.random() * 100),
  241.         status: "待执行",
  242.         duration: template.duration
  243.     };
  244.     taskList.push(newTask);
  245.     updateTaskList();
  246.     appendLog("添加新任务: " + newTask.name);
  247. }

  248. function updateTaskList() {
  249.     // 在实际 Android 开发中,这里需要适配 ArrayAdapter
  250.     // 由于 AIWROK 的 activity.findViewById 返回的是原生 View,直接操作 ListView 较复杂
  251.     // 此处简化为日志输出,实际项目中可结合 H5 或自定义 Adapter
  252.     appendLog("当前任务队列数量: " + taskList.length);
  253. }

  254. function startTasks() {
  255.     if (isRunning) {
  256.         appendLog("任务已在运行中,请勿重复点击");
  257.         return;
  258.     }

  259.     if (taskList.length === 0) {
  260.         appendLog("任务队列为空,请先添加任务");
  261.         return;
  262.     }

  263.     isRunning = true;
  264.     appendLog(">>> 开始执行任务序列...");
  265.     updateUIState(true); // 触发按钮联动

  266.     // 开启工作线程
  267.     new thread().runJsCode(function fun() {
  268.         var totalTasks = taskList.length;
  269.         var completedTasks = 0;

  270.         for (var i = 0; i < totalTasks; i++) {
  271.             // 【关键点】每次循环前检查是否被要求停止
  272.             if (!isRunning) {
  273.                 appendLog("检测到停止指令,退出任务循环");
  274.                 break;
  275.             }

  276.             var task = taskList[i];
  277.             task.status = "执行中";
  278.             appendLog("正在执行: " + task.name);

  279.             // 模拟耗时操作
  280.             java.lang.Thread.sleep(task.duration);

  281.             task.status = "已完成";
  282.             completedTasks++;
  283.             
  284.             // 计算进度并更新 UI
  285.             var progress = Math.floor((completedTasks / totalTasks) * 100);
  286.             
  287.             // 【关键点】跨线程更新 UI 必须使用 runOnUiThread
  288.             ac.runOnUiThread(function() {
  289.                 try {
  290.                     var progressBar = ac.findViewById("progressBar");
  291.                     var progressText = ac.findViewById("progressText");
  292.                     var currentTaskInfo = ac.findViewById("currentTaskInfo");
  293.                     
  294.                     if (progressBar) progressBar.setProgress(progress);
  295.                     if (progressText) progressText.setText("进度: " + progress + "%");
  296.                     
  297.                     // 视觉特效:更新当前执行项并高亮
  298.                     if (currentTaskInfo) {
  299.                         currentTaskInfo.setText("正在处理: " + task.name);
  300.                         currentTaskInfo.setTextColor(android.graphics.Color.parseColor("#2196F3")); // 蓝色高亮
  301.                     }
  302.                 } catch (e) {}
  303.             });

  304.             // 保存进度到配置,防止意外中断后丢失
  305.             config.setConfig('/sdcard/task_state.ini', 'last_progress', progress.toString());
  306.         }

  307.         isRunning = false;
  308.         appendLog("<<< 所有任务执行完毕");
  309.         
  310.         // 任务完成后重置 UI
  311.         ac.runOnUiThread(function() {
  312.             try {
  313.                 var progressBar = ac.findViewById("progressBar");
  314.                 var currentTaskInfo = ac.findViewById("currentTaskInfo");
  315.                 if (progressBar) progressBar.setProgress(0);
  316.                 if (currentTaskInfo) {
  317.                     currentTaskInfo.setText("当前无正在执行的任务");
  318.                     currentTaskInfo.setTextColor(android.graphics.Color.parseColor("#999999")); // 恢复灰色
  319.                 }
  320.             } catch (e) {}
  321.         });
  322.         
  323.         updateUIState(false); // 恢复按钮状态
  324.     }, "TaskWorkerThread");
  325. }

  326. function stopTasks() {
  327.     if (!isRunning) {
  328.         appendLog("当前没有正在执行的任务");
  329.         return;
  330.     }
  331.     isRunning = false;
  332.     appendLog("!!! 用户已触发停止指令,正在终止...");
  333.    
  334.     // 立即更新 UI 状态,给用户明确的反馈
  335.     ac.runOnUiThread(function() {
  336.         try {
  337.             var progressBar = ac.findViewById("progressBar");
  338.             var currentTaskInfo = ac.findViewById("currentTaskInfo");
  339.             if (progressBar) progressBar.setProgress(0);
  340.             if (currentTaskInfo) {
  341.                 currentTaskInfo.setText("任务已被用户手动停止");
  342.                 currentTaskInfo.setTextColor(android.graphics.Color.parseColor("#FF0000")); // 红色警告
  343.             }
  344.         } catch (e) {}
  345.     });
  346.    
  347.     // 延迟一点再恢复按钮状态,让用户看到“停止”的效果
  348.     java.lang.Thread.sleep(500);
  349.     updateUIState(false);
  350. }

  351. // ==================== 配置持久化 ====================
  352. function loadConfig() {
  353.     try {
  354.         var savedProgress = config.getConfig('/sdcard/task_state.ini', 'last_progress', '0');
  355.         appendLog("加载上次进度: " + savedProgress + "%");
  356.     } catch (e) {
  357.         appendLog("读取配置失败: " + e.message);
  358.     }
  359. }

  360. // ==================== 启动入口 ====================
  361. init();
复制代码





unto苹果脚本找图后Detect对象各种方法演示nextnocontent
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读
信息发布软件AIWROK使用activity列表开关与进度条的协同交互
AIWROK使用activity列表开关与进度条的协同交互
群发软件苹果脚本找图后Detect对象各种方法演示
苹果脚本找图后Detect对象各种方法演示
群发软件苹果脚本网络API监控与数据管理工具
苹果脚本网络API监控与数据管理工具
群发软件IOS苹果脚本TXT文件读写H5日志打印完整示例
IOS苹果脚本TXT文件读写H5日志打印完整示例
群发软件AIWROK软件演示多线程创建暂停恢复
AIWROK软件演示多线程创建暂停恢复
群发软件AIWROK软件定时检查页面状态防止卡死技巧
AIWROK软件定时检查页面状态防止卡死技巧
群发软件安卓脚本runTime相关功能示例
安卓脚本runTime相关功能示例
群发软件floatUI实例秒显示秒关闭吐司功能
floatUI实例秒显示秒关闭吐司功能
群发软件苹果脚本HID多行实例粘帖板示例
苹果脚本HID多行实例粘帖板示例
群发软件安卓脚本HID节点查找完整方法示例
HID节点查找完整方法示例
群发软件AIWROK软件框架的抖音自动化营销系统
AIWROK软件框架的抖音自动化营销系统
群发软件赛博朋克任务控制中心H5示例
赛博朋克任务控制中心H5示例
群发软件苹果脚本现代深色UI设计风格
现代深色UI设计风格
群发软件AIWROK软件智能任务监控悬浮窗
AIWROK软件智能任务监控悬浮窗
群发软件AIWROK软件事件监听示例
AIWROK软件事件监听示例
群发软件QZ掘金原生UI界面
QZ掘金原生UI界面
群发软件安卓脚本auto方法完整示例
安卓脚本auto方法完整示例
群发软件安卓脚本暂停弹出确认对话框
安卓脚本暂停弹出确认对话框
群发软件苹果iOS脚本天气信息查询工具
苹果iOS脚本天气信息查询工具
群发软件安卓脚本简化版H5日志输出窗口
安卓脚本简化版H5日志输出窗口
群发软件安卓脚本简化版H5日志输出窗口
安卓脚本简化版H5日志输出窗口
群发软件安卓脚本应用重置、代理模式监控及补丁升级
安卓脚本应用重置、代理模式监控及补丁升级
群发软件安卓脚本里的打开关闭安装以及卡密授权信息
安卓脚本里的打开关闭安装以及卡密授权信息
群发软件AIWROK软件脚本GET下载文件并检测0KB工具
AIWROK软件脚本GET下载文件并检测0KB工具
群发软件安卓脚本HID按键方法完整示例
安卓脚本HID按键方法完整示例
群发软件AIWROK软件键鼠HID滑动所有方法功能演示
AIWROK软件键鼠HID滑动所有方法功能演示
群发软件苹果脚本里HID的5种滑动方法的使用
苹果脚本里HID的5种滑动方法的使用
群发软件苹果脚本示例7种不同的OCR识别和点击方法
苹果脚本示例7种不同的OCR识别和点击方法
群发软件AIWROK软件安卓脚本FTP上传下载例子
AIWROK软件安卓脚本FTP上传下载例子
群发软件AIWROK软件脚本JSON转换示例
AIWROK软件脚本JSON转换示例
群发软件AIWROK软件运算符高级应用实例
AIWROK软件运算符高级应用实例
群发软件JavaScript语法小示例
JavaScript语法小示例
群发软件展示JavaScript各种语句标识符的实际应用
展示JavaScript各种语句标识符的实际应用
群发软件AIWROK条件语句实用示例智能活动推荐系统
AIWROK条件语句实用示例智能活动推荐系统
群发软件AIWROK软件示例数组方法实战应用
AIWROK软件示例数组方法实战应用
群发软件示例JavaScript的 try-catch-finally-throw用法
示例JavaScript的 try-catch-finally-throw用法
群发软件JavaScript 高级错误处理实战示例
JavaScript 高级错误处理实战示例
群发软件安卓脚本AIWROK软件示例JS函数高级用法
安卓脚本AIWROK软件示例JS函数高级用法
群发软件AIWROK环境JavaScript编码规范完整示例
AIWROK环境JavaScript编码规范完整示例
群发软件安卓脚本示例实时截图判断页面变化
安卓脚本示例实时截图判断页面变化
群发软件苹果脚本7种不同的OCR识别
苹果脚本7种不同的OCR识别
群发软件安卓脚本多变的function用法
安卓脚本多变的function用法
群发软件苹果脚本示例Config配置H5集成
苹果脚本示例Config配置H5集成
群发软件安卓脚本类型判断与Boolean对象综合示例
安卓脚本类型判断与Boolean对象综合示例
群发软件线程全局变量H5可视化控制台
线程全局变量H5可视化控制台
群发软件秒吐司快速显示和关闭的UI提示窗口
秒吐司快速显示和关闭的UI提示窗口
群发软件苹果脚本里H5 里的 window.at.callFun 示例
苹果脚本里H5 里的 window.at.callFun 示例
群发软件H5日志打印运行过程例子
H5日志打印运行过程例子
群发软件AIWROK软件字符串方法实用案例
AIWROK软件字符串方法实用案例
群发软件HID贝塞尔曲线运动控制器
HID贝塞尔曲线运动控制器
群发软件AIWROK苹果脚本sleep方法综合实战示例
AIWROK苹果脚本sleep方法综合实战示例
群发软件苹果脚本Line控件的多种创意用法和实际应用场景
苹果脚本Line控件的多种创意用法和实际应用场景
群发软件苹果脚本toast高级应用综合示例
苹果脚本toast高级应用综合示例
群发软件苹果智能OCR自动化助手
苹果智能OCR自动化助手
群发软件苹果脚本UI超快速点击示例
苹果脚本UI超快速点击示例
群发软件展示时间戳的各种复杂处理方法
展示时间戳的各种复杂处理方法
群发软件苹果脚本随机数实用示例
苹果脚本随机数实用示例
群发软件安卓手机脚本多种倒计时显示方式
安卓手机脚本多种倒计时显示方式
群发软件苹果脚本屏幕事件EVENT示例
苹果脚本屏幕事件EVENT示例
群发软件苹果脚本屏幕类screen例子
苹果脚本屏幕类screen例子
群发软件安卓手机config配置演示实列
安卓手机config配置演示实列
群发软件苹果脚本配置config小实例
苹果脚本配置config小实例 https://www.yuque.com/aiwork/dcvhmb/qolobpysdg0hvi2e
群发软件苹果脚本矩形类rect小实例
苹果脚本矩形类rect小实例
群发软件AIWROK安卓苹果平台设计的实用工具库
AIWROK安卓苹果平台设计的实用工具库
群发软件AIWROK软件Function导入方法实例演示
AIWROK软件Function导入方法实例演示

QQ|( 京ICP备09078825号 )

本网站信息发布软件,是可以发布论坛,发送信息到各大博客,各大b2b软件自动发布,好不夸张的说:只要手工能发在电脑打开IE能发的网站,用这个宣传软件就可以仿制动作,进行推送发到您想发送的B2B网站或是信息发布平台上,不管是后台,还是前台,都可以进行最方便的广告发布,这个广告发布软件,可以按月购买,还可以试用软件,对网站的验证码也可以完全自动对信息发布,让客户自动找上门,使企业轻松实现b2b发布,这个信息发布软件,均是本站原创正版开发,拥有正版的血统,想要新功能,欢迎提意见给我,一好的分类信息群发软件在手,舍我其谁。QQ896757558

GMT+8, 2026-6-29 07:24 , Processed in 0.465432 second(s), 49 queries .

宣传软件--信息发布软件--b2b软件广告发布软件

快速回复 返回顶部 返回列表