在android中创建一个定时服务

2023-12-14

我需要用java在android中创建一个日程服务。我尝试了一些代码,但在构建应用程序后它始终无法运行。我的逻辑很简单,我想创建一个服务来检查蓝牙文件夹路径中是否存在文件,如果该文件存在,那么该服务将运行另一个应用程序,我需要每 2 分钟运行一次的计划。

到目前为止这都很好,但现在我有一个错误The method startActivity(Intent) is undefined for the type MyTimerTask。我已经尝试过这段代码...

public class MyTimerTask extends TimerTask {
    java.io.File file = new java.io.File("/mnt/sdcard/Bluetooth/1.txt");

    public void run(){ 
        if (file.exists()) {
            Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.setComponent(new ComponentName("com.package.address","com.package.address.MainActivity"));
            startActivity(intent);
        }
    } 
}

有人可以帮我解决这个问题吗?


有两种方法可以实现您的要求。

  • 定时任务
  • 报警管理类

    TimerTask 有一个方法可以在给定的特定时间间隔重复活动。请看下面的示例。

    Timer timer; 
    MyTimerTask timerTask; 
    
    timer = new Timer(); 
    timerTask = new MyTimerTask();
    timer.schedule ( timerTask, startingInterval, repeatingInterval );
    
    private class MyTimerTask extends TimerTask 
    {
         public void run()
         { 
            ...
            // Repetitive Activity goes here
         } 
    }
    

    AlarmManager做同样的事情TimerTask但因为它执行任务时占用的内存较少。

    public class AlarmReceiver extends BroadcastReceiver 
    {
        @Override
        public void onReceive(Context context, Intent intent) 
        {
            try 
            {
                Bundle bundle = intent.getExtras();
                String message = bundle.getString("alarm_message");
                Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
            } 
            catch (Exception e) 
            {
                 Toast.makeText(context, "There was an error somewhere, but we still received an alarm", Toast.LENGTH_SHORT).show();
     e.printStackTrace();
            }
       }
    }
    

警报类,

private static Intent alarmIntent = null;
private static PendingIntent pendingIntent = null;
private static AlarmManager alarmManager = null;

    // OnCreate()
    alarmIntent = new Intent ( null, AlarmReceiver.class );
    pendingIntent = PendingIntent.getBroadcast( this.getApplicationContext(), 234324243, alarmIntent, 0 );
alarmManager = ( AlarmManager ) getSystemService( ALARM_SERVICE );
    alarmManager.setRepeating( AlarmManager.RTC_WAKEUP, ( uploadInterval * 1000 ),( uploadInterval * 1000 ), pendingIntent );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在android中创建一个定时服务 的相关文章

随机推荐

  • Cassandra - 重叠数据范围

    我在 Cassandra 中有以下 任务 表 Task ID UUID 分区键 Starts On TIMESTAMP 聚类列 Ends On TIMESTAMP 聚类列 我想运行 CQL 查询来获取给定日期范围内的重叠任务 例如 如果我传
  • 在 Powershell 中,如何将消息框带到前台,并将焦点更改为消息框中的按钮

    在我的脚本中 当我打开消息框时 消息框始终在后台打开 位于运行的所有其他应用程序和窗口之后 我正在尝试做两件事 如果它们应该是两个问题 我很抱歉 但我认为密切相关 1 我希望消息框在需要呈现时显示在所有应用程序的前面 2 我想要将焦点更改为
  • 特征名称后面的特征是什么意思?

    我在阅读 Rust 时遇到了这个特征定义 trait Enchanter std fmt Debug 由此我了解到该特征的名称是Enchanter 但我不明白什么std Format Debug部分暗示 因为它也是一种特质 我认为 这是宣告
  • Jsoup div[class=] 语法有效,而 div.class 语法无效 - 为什么?

    对于以下 HTML 片段 div class class one class two class three classfour classfive classsix some inner content div 以下 Jsoup 选择器w
  • 为什么10000000*1000在java中给出141006540​​8? [复制]

    这个问题在这里已经有答案了 class a public static void main String arg int a 10000000 int b 1000 int c a b System out println c 输出是 14
  • windows:获取监视器的数量,包括禁用的监视器

    EnumDisplayMonitors列出当前激活的所有监视器 但是 它似乎不会返回禁用的 即未选中 将我的桌面扩展到此显示器 的那些 我如何获得包括残疾人在内的计数 好的 首先您必须创建一个设备上下文 http msdn microsof
  • Windows 任务计划程序的问题

    我在使用 Windows 任务管理器时遇到两个问题 一 我有一个 Python 脚本 可以在运行结束时通过 gmail 发送电子邮件通知 当我运行脚本本身时 这工作正常 但是当我通过 Windows 任务计划程序运行脚本时 脚本运行良好 但
  • Struts 2 jQuery 网格从 JSON 字符串加载数据

    我发现我们可以加载jqGird与 JSON 字符串 请参阅将 JSON 数据映射到 jqGrid 是否可以使用此功能sjg grid tag 我查看标签属性 只发现可以从 URL 加载数据 该 URL 将调用 Struts 操作 并且该操作
  • 在 Android 中以编程方式切换到开发者模式

    我想创建一个工具 允许在 Android 版本低于 4 2 的 Android 设备上切换到开发人员模式 我想创建一个 apk 来激活和停用开发者模式 这可能吗 如何 开发人员 模式是一种系统设置 因此只能从系统应用程序进行修改 即使用制造
  • 为什么当我转换为“long”时会调用“operator bool()”?

    我有以下课程 class MyClass public MyClass char what controlled what MyClass delete controlled operator char const return contr
  • 如何在渲染时为 React 组件设置动画?

    我正在尝试为包含从其他地方获取的数据的 React 组件设置动画 将其放置在ReactCSSTransitionGroup工作得很好 也就是说 直到我改变了组件的render 返回方法false直到数据被获取 到防止在没有数据的情况下渲染它
  • 如何从 C# 显示文件的“属性”对话框?

    如何打开文件的特性通过按钮进行对话框 private void button Click object sender EventArgs e string path C Users test Documents tes text how t
  • Java 9、10、11、12...等中的 javax.smartcardio

    从 Java 9 开始 javax smartcardio 库发生了什么 有替代方法或某种方式在 JAR 中获取它吗 在网上搜索了几个小时后 感谢上面的答案 据我了解 Java 9 及更高版本是模块化的 这是几年前计划的语言改进 此外 在新
  • 将两个导航控制器添加到一个选项卡栏项目

    我希望将 2 个导航控制器附加到一个选项卡栏项目 基本上 这个想法是在单个选项卡项上有 2 个视图 并且应该有一个导航栏来推动和弹出屏幕 与 iPad 中的设置应用程序相同 已编辑 看起来左侧有一个带有自己的导航控制器的视图 而右侧有另一个
  • 如何在 Swift 中增加 plus 设备上的字体和大小?

    我观察了一些流行的应用程序 当我们比较 iPhone Plus 设备和普通设备时 字体和图像是不同的 iPhone Plus 设备中稍大一些 我们如何在 iOS 应用程序中实现同样的目标 我已经使用过闪屏了 但字体仍然是相同的 在 plus
  • 为IE6中新打开的窗口设置OnLoad事件

    我需要为新弹出的窗口设置 onload 属性 以下代码适用于 Firefox a href www google com 但是 当我在 IE 中尝试此操作时 出现错误 printwindow document body null 或未定义
  • 从屏幕坐标查找世界坐标

    这个问题有很多答案 但我不确定它们都适用于 XTK 例如在 Three JS 中看到了多个答案 但显然 XTK 和 Three JS 没有相同的 API 使用射线和Matrix似乎与其他框架的许多其他解决方案非常相似 但我仍然没有掌握可能的
  • 算法 - 如何在 O(K) 中查找 Kt'h 元素并构建 O(n)

    我需要在 O k 中找到包含无序 n 元素的数组输入的 K 元素 满足以下要求 1 构建可以是O n 您可以使用给定的数组构建您想要的任何数据结构 2 找到O k 中的第k个元素 该算法在假设数组中没有重复元素的情况下工作 预处理 找到中间
  • 如何查看一个分支中的哪些提交不在另一分支中?

    我有两个分行devel and next 在开发中 我或多或少有大量的提交 一些提交是精心挑选的next 我还添加了一些提交到 next 并合并到devel 现在我想看看缺少什么next 这样我就可以在将更改提交之前详细测试它们next 我
  • 在android中创建一个定时服务

    我需要用java在android中创建一个日程服务 我尝试了一些代码 但在构建应用程序后它始终无法运行 我的逻辑很简单 我想创建一个服务来检查蓝牙文件夹路径中是否存在文件 如果该文件存在 那么该服务将运行另一个应用程序 我需要每 2 分钟运