值更改java时启动后台任务

时间:2017-02-11 14:12:01

标签: java android background-task

我正在开发一种基于传感器的应用程序,我收集传感器'数据通过BLE连接连续显示在图表上。我想在应用程序中添加一个算法,该算法将在收到的每个新值上运行,并在UI中显示结果。由于数据传输是连续进行的,我希望算法将在后台运行,因此图形数据将保持速度。 我正在阅读几种方法(AsyncTask,Thread等...),但作为一个新手: 我不完全明白哪个更好 我无法正确实现它。

以下是相关的代码:

public Date getTheDateLoaned()
{
    System.out.println("What day was it loaned out in dd/MM/yyyy format?");
    String dateFormat = "dd/MM/yyyy";
    Scanner scanner = new Scanner(System.in);
    try 
    {
        return new SimpleDateFormat(dateFormat).parse(scanner.nextLine());
    } 
    catch (ParseException ex) 
    {
        System.out.println("This was not in the right format. The format"
                + "needs to be dd/MM//yyyy");
    }
return null;
}

1 个答案:

答案 0 :(得分:1)

创建本地服务,让您的传感器数据接收代码绑定到此本地服务。绑定后,您可以向服务发送消息并让它在后台处理并更新UI或其他任何内容。您可以在此处详细了解服务 - https://developer.android.com/guide/components/bound-services.html

另一个新的构造是使用一个事件总线,它将使你的代码完全脱离并消除大部分行李(你刚接触Android会发现这更容易)。点击此处 - https://code.tutsplus.com/tutorials/quick-tip-how-to-use-the-eventbus-library--cms-22694