Sono nuovo nella programmazione Android. Ho un ricevitore che avvia un servizio all'avvio ma sembra non essere mai partito. Puoi dirmi cosa sto sbagliando? Non so come fare il debug. Puoi spiegarmi come posso eseguire il debug dei servizi di avvio di Android?Il servizio di avvio Android non si avvia mai
Ecco il mio codice. Grazie in anticipo
Recibidor.java:
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;
public class Recibidor extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Iniciando Recibidor", Toast.LENGTH_LONG).show();
final String TAG = "Recibidor";
Log.i(TAG, "Iniciando Recibidor");
if (intent.getAction().equalsIgnoreCase("android.intent.action.BOOT_COMPLETED")) {
Toast.makeText(context, "Iniciando Intent", Toast.LENGTH_LONG).show();
Log.i(TAG, "Iniciando Intent");
Intent servicio = new Intent();
servicio.setAction("com.pruebas.Servicio");
context.startService(servicio);
Log.i(TAG, "Iniciando Servicio");
Toast.makeText(context, "Iniciando Servicio", Toast.LENGTH_LONG).show();
}
}
}
Servicio.java
package com.pruebas;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;
public class Servicio extends Service {
private final String TAG = "Servicio";
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
Log.i(TAG, "ON CREATE");
Toast.makeText(this, "ON CREATE", Toast.LENGTH_LONG).show();
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i(TAG, "ON DESTROY");
Toast.makeText(this, "ON DESTROY", Toast.LENGTH_LONG).show();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
startForeground(0, null);
Log.i(TAG, "ON START COMMAND");
Toast.makeText(this, "ON START COMMAND", Toast.LENGTH_LONG).show();
return START_STICKY;
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.pruebas"
android:versionCode="1"
android:versionName="1.0"
android:installLocation="internalOnly" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application>
<service android:name=".Servicio">
<intent-filter>
<action android:name="com.pruebas.Servicio"/>
</intent-filter>
</service>
<receiver android:name=".Recibidor" android:enabled="true" android:exported="true"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</receiver>
</application>
</manifest>
Ricevi l'intento nel tuo Recibidor? – Entreco
Ciao Entreco. Puoi dirmi come posso sapere se sto ricevendo l'intento? – eloweyn
È possibile effettuare il login sul metodo Recoiver – tundundun