Ich habe zwei Tage lang an diesem Problem gekämpft. Ich habe zwei Apps und versuche, mit Messenger IPC zu kommunizieren, aber es ist nicht gelungen, den Dienst der Server-App zu binden.Dienst kann nicht gestartet werden Intent, U = 0: nicht gefunden
--- Server-Seite
<service android:name="com.example.RemoteService" android:exported="true">
</service>
</application>
- Client-Seite
@Override
protected void onCreate(Bundle savedInstanceState) {
:
this.connection = new RemoteServiceConnection();
@Override
public void onStart() {
:
Intent intent = new Intent();
intent.setClassName("com.example.client", "com.example.RemoteService");
//Intent i = new Intent("com.example.RemoteService");
//i.setPackage(this.getPackageName());
boolean ret = bindService(intent , this.connection, Context.BIND_AUTO_CREATE);
ret immer falsch ist, und erhält immer Systemmeldung W/ActivityManagerService: Kann Service Intent starten { act = com.beispiel.RemoteService pkg = com.beispiel.client} U = 0: nicht gefunden
Es scheint alles in Ordnung für die Umsetzung. Ich habe das Gefühl, dass es unter dem Layer-Problem liegt. Bitte helfen Sie.
Dank
Hier ist der Service-Klasse
public class RemoteService extends Service
{
private Messenger messenger; //receives remote invocations
@Override
public IBinder onBind(Intent intent)
{
if(this.messenger == null)
{
synchronized(RemoteService.class)
{
if(this.messenger == null)
{
this.messenger = new Messenger(new IncomingHandler());
}
}
}
//Return the proper IBinder instance
return this.messenger.getBinder();
}
private class IncomingHandler extends Handler
{
@Override
public void handleMessage(Message msg)
{
System.out.println("*****************************************");
System.out.println("Remote Service successfully invoked!!!!!!");
System.out.println("*****************************************");
int what = msg.what;
Toast.makeText(RemoteService.this.getApplicationContext(), "Remote Service invoked-("+what+")", Toast.LENGTH_LONG).show();
//Setup the reply message
Message message = Message.obtain(null, 2, 0, 0);
try
{
//make the RPC invocation
Messenger replyTo = msg.replyTo;
replyTo.send(message);
}
catch(RemoteException rme)
{
//Show an Error Message
Toast.makeText(RemoteService.this, "Invocation Failed!!", Toast.LENGTH_LONG).show();
}
}
}
}
Es hat immer noch einen Fehler "W/Acti vityManagerService: Dienst kann nicht gestartet werden Intent {act = com.example.RemoteService pkg = com.example.client} U = 0: nicht gefunden " – gijung
@gijung check updated ans –