在java中的背景线程

时间:2014-11-12 06:29:31

标签: java multithreading

我是java新手我正在搜索后台线程在java 中,即使在 java桌面应用程序关闭之后也会定期运行。 我需要与 Android 中的服务类似的内容。 我搜索了它,但我发现只是线程没有服务。 我必须通过后台主题服务将数据发送到服务器,该服务器将存储在 config.propertise 文件中。 在此先感谢

4 个答案:

答案 0 :(得分:5)

一个线程包含在一个进程中,因此讨论应用程序关闭后运行的线程是没有意义的。

你要么:

答案 1 :(得分:1)

您可以通过使用计时器类来实现相同的功能。 O.w后台服务在这里 How to create a windows service from java app

答案 2 :(得分:0)

我有一种不寻常的方式来做到这一点。它总是对我有用。 用户关闭应用程序后,您必须执行某项任务,对吗??? 。 只需覆盖关闭按钮功能,并在关闭操作时隐藏窗口。 继续你的工作线程。 完成工作后,请使用

关闭您的应用
 System.exit

用户永远不会知道应用程序是在后台运行。

答案 3 :(得分:0)

基础this,创建一个Java程序,该程序将用作Linux crontab或Windows调度程序的服务。

public class SomeService
{
    // Your task will repeat itself periodically (here every minute), until it is stopped
    private static final int SLEEP_TIME = 60000;

    private static boolean stop = false;

    public static void start(String[] args)
    {
        System.out.println("start");
        while (!stop)
        {
            sendDataToServer();
            try
            {
                Thread.sleep(SLEEP_TIME);
            }
            catch (InterruptedException e) {}
        }
    }

    private void sendDataToServer()
    {
        // TODO your job here
    }

    public static void stop(String[] args)
    {
        System.out.println("stop");
        stop = true;
    }

    public static void main(String[] args)
    {
        if ("start".equals(args[0]))
        {
            start(args);
        }
        else if ("stop".equals(args[0]))
        {
            stop(args);
        }
    }
}