servicio saber intent esta ejemplo create corriendo como android android-intent android-service

android - saber - Imposible iniciar el servicio Intención: no encontrada



java android service (8)

¿Creó un constructor vacío en el servicio?

Si no, intenta eso.

También es incierto si puede usar la intención de esa manera. Podrías probar la nueva construcción ''Inten (this, MoodyService.class)''.

Tengo el mismo problema descrito here pero no puedo entender lo que está mal.

Mi problema es: no se puede iniciar el servicio Intención {act = .connections.MoodyService} U = 0: no encontrado

EDITAR He cambiado mi paquete de conexiones a servicio en el código fuente, disculpe la confusión

Mi manifiesto `

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.moody" android:installLocation="auto" android:versionCode="0" android:versionName="0.6.7 alpha" > <uses-sdk android:maxSdkVersion="18" android:minSdkVersion="14" android:targetSdkVersion="17" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:allowBackup="true" android:allowClearUserData="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="activities.MainActivity" android:label="@string/app_name" > </activity> <activity android:name="activities.Menu_esq" android:label="@string/title_activity_menu_esq" > </activity> <activity android:name="activities.BaseActivity" android:label="@string/title_activity_base" > </activity> <activity android:name="activities.MainView" android:label="@string/title_activity_main_view" > </activity> <activity android:name="activities.LoginActivity" android:label="@string/app_name" android:noHistory="true" android:windowSoftInputMode="adjustResize|stateVisible" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.moody.LeftActivity" android:label="@string/title_activity_left" > </activity> <activity android:name="com.example.moody.RightActivity" android:label="@string/title_activity_right" > </activity> <activity android:name="activities.UserDetailsActivity" android:label="@string/title_activity_user_details" > </activity> <activity android:name="fragments.TopicsPreview" android:label="@string/title_activity_copy_of_topics_preview" > </activity> <activity android:name="activities.Loading" > </activity> <service android:name=".service.MoodyService" android:icon="@drawable/ic_launcher" android:label="@string/moody_service" > </service> </application>

el servicio es el paquete y MoodyService es el nombre de la clase

Mi clase de servicio

public class MoodyService extends Service { public MoodyService() { // TODO Auto-generated constructor stub } private boolean isRunning = false; Object getContent; @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { super.onStartCommand(intent, flags, startId); // Announcement about starting Toast.makeText(this, "Starting the Demo Service", Toast.LENGTH_SHORT) .show(); // Start a Background thread isRunning = true; Thread backgroundThread = new Thread(new BackgroundThread()); backgroundThread.start(); // We want this service to continue running until it is explicitly // stopped, so return sticky. return START_STICKY; } @Override public void onDestroy() { super.onDestroy(); // Stop the Background thread isRunning = false; // Announcement about stopping Toast.makeText(this, "Stopping the Demo Service", Toast.LENGTH_SHORT) .show(); } private class BackgroundThread implements Runnable { int counter = 0; public void run() { try { counter = 0; while (isRunning) { System.out.println("" + counter++); new Contents().getAll(getResources(), getApplicationContext()); Thread.currentThread().sleep(5000); } System.out.println("Background Thread is finished........."); } catch (Exception e) { e.printStackTrace(); } } }

Y en mi principal.

Intent start = new Intent(".service.MoodyService"); this.startService(start);

y también intenté

Intent intent = new Intent(this, MoodyService.class); this.startService(intent);

y probado con el camino completo

<service android:name="com.example.moody.service.MoodyService" android:icon="@drawable/ic_launcher" android:label="@string/moody_service" >


¿Intentó usar el android: nombre que especificó en el Manifiesto?

Manifiesto de Android:

<service android:enabled="true" android:name="UploadService" />

La llamada sería algo así:

Intent intent = new Intent("UploadService");


Asegúrese de haber declarado su servicio en el archivo de manifiesto.

<service android:name=".MyService" android:enabled="true" > </service>

e intente escribir getApplicationContext () en lugar de "this" palabra clave

startService(new Intent(getApplicationContext(), MoodyService.class));


Creo que el nombre del paquete manifiesto para el servicio es incorrecto ya que dijiste que el nombre de tu paquete son connections por lo que debería ser así

android:name ="connections.MoodyService"

o

android:name="com.example.moody.connections.MoodyService"

invocar servicio hacer

Intent intent = new Intent(this, MoodyService.class); this.startService(intent);


El servicio también debe incluirse en el Manifiesto :

<service android:name="com.x.x.serviceclass"></service>


No sé por qué está usando ese nombre de paquete para su nombre de servicio, pero ¿por qué no usa el nombre de clase para comenzar el servicio?

Intent intent = new Intent(context, YourService.class); context.startService(intent);


mi servicio está en el paquete de "servicio" y mi servicio manifesto enrty así;

<service android:name="service.TimerService" android:exported="false" > </service>


Resuelto

Eliminé el período al principio del nombre del paquete en el manifiesto y funcionó, en otras palabras:

Esto no funciona:

.yourPackage.YourClass

Pero esto funciona:

yourPackage.YourClass

Y en general:

Intent intent = new Intent(this, MoodyService.class); this.startService(intent);

Pero va en contra de lo que está escrito en la documentación :

android: name El nombre de la subclase de Servicio que implementa el servicio. Este debe ser un nombre de clase completo (como, por ejemplo, "com.example.project.RoomService"). Sin embargo, como una abreviatura, si el primer carácter del nombre es un punto (por ejemplo, ".RoomService"), se agrega al nombre del paquete especificado en el elemento. Una vez que publique su aplicación, no debe cambiar este nombre (a menos que haya configurado android: exported = "false").

No hay un defecto El nombre debe ser especificado.