сбой службы при запуске - PullRequest
0 голосов
/ 10 февраля 2012
// 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 голосов
/ 10 февраля 2012

Абстрактные классы, будь то Service s или другие вещи, не могут быть созданы.Eclipse без сомнения предложил добавить ключевое слово abstract в свой класс, потому что вы не реализовали все необходимые методы для создания конкретного экземпляра.

Я не знаю, есть ли в Eclipse такая опция (я так полагаю), но у IntelliJ IDEA есть опция, где вы можете выбрать «реализовать методы», когда у вас есть неполный класс, и он добавитвсе заглушки, которые нужно заполнить. Попробуйте это или обратитесь к документации для получения полного списка.

...