服务崩溃开始

时间:2012-02-09 21:50:11

标签: android android-intent android-service

// PPS.java

package com.domain.Servicecrasher;
import android.app.Service;
import android.view.Gravity;
import android.widget.Toast;
public abstract class PPS extends Service
{
 @Override
 public void onCreate()
 {
  Toast toasty = Toast.makeText(PPS.this, "service created!", 500);
  toasty.setGravity(Gravity.CENTER, 0, 200);
  toasty.show();
 };
 public void onDestroy()
 {
  Toast toasted = Toast.makeText(PPS.this, "service destroyed!", 500);
  toasted.setGravity(Gravity.CENTER, 0, -200);
  toasted.show();
 }; 
};

尝试使用两种方法调用服务:

方法1。

{
 {
  {
   startService(new Intent(MainMenu.this, PPS.class));
  }
 }
}

方法2

{
 {
  {
  Intent startPPS = new Intent(MainMenu.this, PPS.class);
  startPPS.putExtra("com.domain.Servicecrasher.PPS", false);
  startService(startPPS);
  }
 }
}

这两个都在模拟器上返回一个错误,说应用程序意外退出并且我点击强制关闭,但主要活动没有关闭,所以我假设它是我的服务强行关闭。以下是DDMS输出:

java.lang.RuntimeException: Unable to instantiate service com.domain.Servicecrasher.PPS
 at android.app.ActivityThread.handleCreateService(ActivityThread.java:1929)
at android.app.ActivityThread.access$2500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:985)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(Zygote.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
caused by: java.lang.InstantiationException: com.domain.Servicecrasher.PPS
at java.lang.Class.newInstaceImp1(Native Method)
at java.lang.Class.newInstaceI(Class.java:1409)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:1926)
... 10 more

只是几个简单的问题。 我究竟做错了什么? 这样做的正确方法是什么?

最终我需要该服务能够从SQL库加载设置,并在主要活动失去焦点或关闭后继续将音频录制到文件中。

现在,如果我能推出一项简单的服务,我会感到高兴。

1 个答案:

答案 0 :(得分:0)

抽象类,无论是Service还是其他东西,都无法实例化。 Eclipse毫无疑问建议您将abstract关键字添加到您的类中,因为您没有实现所有必要的方法来创建具体实例。

我不知道Eclipse是否有这样的选项(我认为它确实如此),但IntelliJ IDEA有一个选项,当你有一个不完整的类时你可以选择“实现方法”,它会添加所有的存根您需要填写。请尝试,或查阅文档以获取完整列表。