首页 > 解决方案 > 启动线程并进行后台活动

问题描述

即使在应用程序被杀死后,我也希望有一个在后台运行的动作(Runnable 中的那个)。我在 r in Thread t = new Thread(r);(in Thread cannot be applied java Runnable) 和 at t.start();(cannot resolve method)有错误

这是在onCreate()

Runnable r = new Runnable() {
    @Override
    public void run() {

        Calendar cal = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault());
        SharedPreferences sharedPref = getSharedPreferences("Alarms", Context.MODE_PRIVATE);
        mh = sharedPref.getInt("morningHour",  hour_x );
        mm = sharedPref.getInt("morningMinute",  minute_x );
        int hours = cal.get(Calendar.HOUR_OF_DAY);
        int minutes = cal.get(Calendar.MINUTE) ;

        if(hours == mh && minutes == mm)
            startAlarm();

        nh = sharedPref.getInt("noonHour",  hour_x );
        nm = sharedPref.getInt("noonMinute",  minute_x );

        if(hours == nh && minutes == nm)
            startAlarm();

        eh = sharedPref.getInt("eveningHour",  hour_x );
        em = sharedPref.getInt("eveningMinute",  minute_x );

        if(hours == eh && minutes == em)
            startAlarm();
    }
};

Thread t = new Thread(r);
t.start();

标签: javamultithreading

解决方案


线程在其父进程被杀死后被杀死,如果您希望您的线程继续处理,您可以在单独的进程中启动它,请参阅以获取更多信息。

如果您需要线程的结果,请尝试在两个进程之间传递信息,这可以通过多种方式实现。有关更多信息,请参阅内容。


推荐阅读