2012-02-09 4 views
0
// 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 и продолжить запись звука в файл после того, как основное действие теряет фокус или закрыто.

на данный момент я был бы счастлив, если бы мог просто запустить простой сервис.

+0

Опубликовать полный logcat statctrace. – kosa

+0

Что такое "com.domain. ** notlaunchingservice ** .PPS"? Мы этого не видим. Кроме того, если «com.domain. ** Servicecrasher ** .PPS» - это служба, которую вы пытаетесь запустить, то она абстрактна и не может быть создана. –

+0

отправил больше logcat. notlaunchingservice - это старое название проекта ... теперь изменилось на Servicecrasher, чтобы отразить текущее зависание. извините за путаницу. если я удалю «абстрактный», я получаю предупреждение и не компилируется. Я включил только «абстрактную», потому что затмение предложило это. – notgoodwithjava

ответ

0

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

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

+0

Я забыл импортировать android.os.iBinder. работает сейчас! ты потрясающий чувак! моя первая работающая служба после двух дней попыток. большое спасибо! – notgoodwithjava

+0

@notgoodwithjava Рад, что у вас это работает! – Argyle

Смежные вопросы