我正在构建一个应用程序,它有一个小部件,小部件中的一个按钮启动一个 IntentService。onHandleIntent() 运行一些代码,然后通过处理程序引发敬酒。单击小部件中的按钮后,我看到了 toast,并且我知道 onHandleIntent 已完成。但是当我查看后台服务时,我仍然在那里看到我的应用程序。
作为用户,当应用程序总是在后台运行并浪费我宝贵的 RAM 时,我会感到非常恼火。我的小部件不需要在后台运行,因为我的小部件永远不会更新(xml 中的更新率为 0)。
那么为什么服务还在运行呢?我怎样才能阻止它?
意向服务代码:
public class WidgetCheckService extends IntentService {
private int mAppWidgetId;
Handler mHandler = new Handler();
public SalaryWidgetCheckService(String name) {
super("laceService");
}
public SalaryWidgetCheckService() {
super("laceService");
}
@Override
protected void onHandleIntent(Intent intent) {
// Badass code
mHandler.post(new DisplayToast(getString(R.string.widget_service_check_in_success_toast_text).replace("LACE", lace)));
else mHandler.post(new DisplayToast(getString(R.string.widget_service_check_out_success_toast_text).replace("LACE", lace)));
}
private class DisplayToast implements Runnable{
String mText;
public DisplayToast(String text){
mText = text;
}
public void run(){
Toast.makeText(WidgetCheckService.this, mText, Toast.LENGTH_SHORT).show();
}
}
}
谢谢,埃拉德。