// 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库加载设置,并在主要活动失去焦点或关闭后继续将音频录制到文件中。
现在,如果我能推出一项简单的服务,我会感到高兴。
答案 0 :(得分:0)
抽象类,无论是Service
还是其他东西,都无法实例化。 Eclipse毫无疑问建议您将abstract
关键字添加到您的类中,因为您没有实现所有必要的方法来创建具体实例。
我不知道Eclipse是否有这样的选项(我认为它确实如此),但IntelliJ IDEA有一个选项,当你有一个不完整的类时你可以选择“实现方法”,它会添加所有的存根您需要填写。请尝试,或查阅文档以获取完整列表。