// 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);
}
}
}
這些都在仿真器上返回一個錯誤說應用程序意外退出,我點擊力量關閉,但主要活動沒有關閉,所以我假設這是我強迫關閉的服務ING。下面是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基礎加載設置,並在主要活動失去焦點或關閉後繼續將音頻錄製到文件。
現在我很高興如果我可以發起一個簡單的服務。
完整的logcat statctrace。 – kosa 2012-02-09 21:51:56
什麼是「com.domain。** notlaunchingservice ** .PPS」?我們看不到這一點。另外,如果「com.domain。** Servicecrasher ** .PPS」是您嘗試啓動的服務,那麼它是抽象的,無法創建。 – 2012-02-09 21:59:21
發佈了更多logcat。 notlaunchingservice是舊的項目名稱......現在更改爲Servicecrasher以反映當前的掛斷。對困惑感到抱歉。如果我刪除「抽象」我得到一個警告,它不會編譯。我只包括「抽象」,因爲日食暗示它。 – notgoodwithjava 2012-02-09 22:10:46