Not allowed to bind to service Intent

前端 未结 6 1990
时光说笑
时光说笑 2020-12-31 10:42

I write an android service of get weather, and the AndroidManifest.xml is:




        
6条回答
  •  萌比男神i
    2020-12-31 10:52

    Here says from documentation:

    If we want to make this service run in a remote process (instead of the standard one for its .apk), we can use android:process in its manifest tag to specify one:

    
    

    Also note that the name remote chosen here is arbitrary, and you can use other names if you want additional processes. The : prefix appends the name to your package's standard process name. With that done, clients can now bind to the service and send messages to it. Note that this allows clients to register with it to receive messages back as well.

    Edit1:
    Second, if the service element (in manifest) contains an action string, use it. For example if your service declared like this:

    
       
       
             
    

    So do this in onCreate() method of your service:

    public void onCreate(Bundle savedInstanceState) {    
          super.onCreate(savedInstanceState);  
          Intent intent=new Intent("com.sample.service.serviceClass");  
          this.startService(intent);
    }
    

    I saw that in this question:
    Unable to start Service Intent

    Edit2:
    I saw your manifest again.It seems that your manifest has no Main/Launcher Activity.In android 3.1 and later it causes no service be available.In fact forsecurityreason all services,receivers,... that you declare in manifest,will not register unless your App run explicitly by user and this needs to a Main/Launcher Activity.So you have to add such Activity to your App and be care that it has already been performed.

提交回复
热议问题