Android RuntimeException:无法实例化服务

ram*_*ram 46 android android-service android-intentservice

我想创建一个服务,它将在一个单独的线程上运行(而不是在UI线程上),所以我实现了一个将扩展IntentService的类.但我没有运气.这是代码.

public class MyService extends IntentService {

    public MyService(String name) {
        super(name);
        // TODO Auto-generated constructor stub
    }

    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        Log.e("Service Example", "Service Started.. ");
        // pushBackground();

    }

    @Override
    public void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        Log.e("Service Example", "Service Destroyed.. ");
    }

    @Override
    protected void onHandleIntent(Intent arg0) {
        // TODO Auto-generated method stub
        for (long i = 0; i <= 1000000; i++) {
            Log.e("Service Example", " " + i);
            try {
                Thread.sleep(700);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

"活动"按钮中的服务消耗单击:

public void onclick(View view) {
Intent svc = new Intent(this, MyService.class);
    startService(svc);
}
Run Code Online (Sandbox Code Playgroud)

FrV*_*aBe 65

在具体实现中,您必须声明一个默认构造函数,该public IntentService (String name)构造函数调用您扩展的抽象IntentService类的超级构造函数:

public MyService () {
  super("MyServerOrWhatever");
}
Run Code Online (Sandbox Code Playgroud)

如果超级实现适合您(我期望的话),您不需要覆盖onStartCommand.

在你目前的情况下,你应该得到一个例外(无法实例化服务......) - 总是值得将这个问题放在这个问题上.