I can’t start a service

Asked

Viewed 668 times

2

I’m trying to replace a code I made using thead by services ,but when I create the service it doesn’t start (doesn’t start any service method) and searching the net vi some solutions that said it could be in "manifest.xml" but the changes I made didn’t solve the problem.

My question is : Where am I going wrong?

The manifesto:

<permission android:name="android.permission.FLASHLIGHT"

    android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
    android:protectionLevel="normal" />

<application

    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:screenOrientation="portrait"
    android:theme="@style/Metronome.Theme" >

    <activity
        android:name=".view.MainActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@style/Metronome.Main.Theme" >

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

        <service android:name=".Compasso"/>

    </activity>

    <activity
        android:name=".view.ConfiguracoesActivity"
        android:label="@string/title_activity_configuracoes"
        android:screenOrientation="portrait" >
    </activity>

</application>

This is the Activity method I try to start the service:

public void executar(){
        FrontConversor conversor = new FrontConversor();

        conversor.setVibracao(true);
        conversor.setFlash(false);

        conversor.setTempoMinutos(npTimer.getValue());
        conversor.setFrequenciaBPM(npBPM.getValue());
        conversor.setQuantidadeBatidas(npQntBatidas.getValue());

        conversor.createSomById(getIdSom(), this);
        conversor.createFiguraRitmicaById(npValorBase.getValue());

        //executer.preExecuter(conversor, this); // preparar

        startService(new Intent(this,Compasso.class)); // executar
}

And this is a part of the extend service class (bar class):

public class Compasso extends Service{
...

 @Override
 public int onStartCommand(Intent intent, int flags, int startId) {
    Log.d("MARK","Service iniciado");

        double frequenciaSegundos = this.conversorBPM(this.frequenciaBPM); // 2bps
        double Delay = 1000 / frequenciaSegundos; // 0.5s

        int tempoMiliSegundos = (this.tempoMinutos * 60 * 1000); // (60000 milisegundos)
        double quantidadeCiclo = tempoMiliSegundos / (this.batidasMaximo * Delay);

        this.stopNow = false;

        try {

            // Iniciando ciclo de batidas
            loopSound(Delay, quantidadeCiclo);

        } catch (InterruptedException e) {
            e.printStackTrace();
        } finally {
            this.stopMetronomo();
        }

        return START_STICKY;
    }

...

    @Override
    public IBinder onBind(Intent intent) {
         return null;
    }

}

So I think it should return when the service start will be an error (nullpointerException) but not even error it returns.

Thank you in advance.

  • 3

    In the manifest, <service> is not at the same level of <activity> (not inside her)?

2 answers

3


0

Vlw , people. I found where I was going wrong in the manifest ,besides the service statement is out of Activity I forgot that I am separating the classes according to the MVC and the bar class is inside the control package.

Soon became so (briefly) the maifest:

<manifest ... >
...
  <application ... >
  <service android:name=".control.Compasso" />
  ...
  </application>
</manifest>

Browser other questions tagged

You are not signed in. Login or sign up in order to post.