2017-09-12 2 views
0

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(); 
      } 
     } 
    } 
} 

Antwort

1

versuchen Ihren Dienst wie diese

startService(new Intent(this, YourService.class)); 

nicht starten vergessen Sie da in Ihrem Manifest hinzufügen,

<application> 

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

</application> 
+0

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

+0

@gijung check updated ans –

Verwandte Themen