vedo il seguente errore nel DDMS quando si tenta di utilizzare una casella di controllo il mio MyActivity" l'attività per avviare un servizio chiamato 'MyService':"Impossibile avviare il servizio intenti" l'errore quando si avvia il servizio da un'attività in Android
W/ActivityManager( 73): Unable to start service Intent { cmp=com.example.android.myprogram/.MyService }: not found
ho usato il tutorial http://developer.android.com/resources/tutorials/views/hello-formstuff.html e ha aggiunto il codice fornito al termine del mio metodo onCreate(). ho le classi indicate separatamente in MyActivity.java e MyService.java.
package com.example.android.myprogram;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
public class MyActivity extends Activity {
private static final String TAG = "MyActivity";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final CheckBox checkbox = (CheckBox) findViewById(R.id.checkbox);
checkbox.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Perform action on clicks, depending on whether it's now checked
if (((CheckBox) v).isChecked()) {
// TODO: Add code to START the service
Log.d(TAG, "startService from checkbox");
startService(new Intent(MyActivity.this, MyService.class));
} else {
// TODO: Add code to STOP the service
Log.d(TAG, "stopService from checkbox");
stopService(new Intent(MyActivity.this, MyService.class));
}
}
});
}
}
mio file manifesto ha il seguente in cui ho anche provato il pieno namespace, nome breve, utilizzo di un filtro intent per un'altra ricerca, ecc. Non sto dicendo che cosa è corretto. L'ho appena lasciato a un punto di sosta.
<service android:name=".MyService">
<intent-filter><action android:name="com.example.android.myprogram.MyService"></action>
</intent-filter>
</service>
E, infine, il servizio che ho deciso di abbattere al suo minimo indispensabile:
package com.example.android.myprogram;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
public class MyService extends Service {
private static final String TAG = "MyService";
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
Log.d(TAG, "onCreate");
//code to execute when the service is first created
}
@Override
public void onDestroy() {
Log.d(TAG, "onDestroy");
//code to execute when the service is shutting down
}
@Override
public void onStart(Intent intent, int startid) {
Log.d(TAG, "onStart");
//code to execute when the service is starting up
}
}
Sono molto, molto, molto nuovo per Java/programmazione Android e programmazione in generale (ma imparando) quindi sono sicuro che si tratta di un errore dell'utente e probabilmente del buon senso per tutti gli altri. Qualsiasi suggerimento sarebbe molto apprezzato.
Potrebbe incollare il codice del servizio? – Cristian
Cristian, grazie per la risposta. Il codice è stato aggiunto. Domanda: dovrei essere in grado di usarlo e ottenere un risultato positivo? http://android.kgmoney.net/2010/05/08/creating-a-simple-android-service-for-background-processing/. Neanche funziona. – capitalf