Il mio servizio è correttamente binded alla mia prima attività, ma quando cerco di associarlo a una seconda attività non funziona Ecco il codice di onResume e in pausa della mia prima attivitàvincolante un servizio a più attività
@Override
protected void onResume() {
super.onResume();
connection = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
service = null;
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
shareInfos.this.service = (IService) service;
}
};
bindService(new Intent(this, shareInfos.class), connection,
Context.BIND_AUTO_CREATE);
}
@Override
protected void onPause() {
super.onPause();
if (service != null) {
service = null;
unbindService(connection);
}
}
ho fatto lo stesso per la mia seconda attività, ma quando provo ad usare il servizio che è sempre nullo Ecco il codice della mia seconda attività:
@Override
protected void onResume() {
super.onResume();
connection = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
service = null;
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
shareInfos.this.service = (IService) service;
}
};
bindService(new Intent(this, shareInfos.class), connection,
Context.BIND_AUTO_CREATE);
}
@Override
protected void onPause() {
super.onPause();
if (service != null) {
service = null;
unbindService(connection);
}
}
Quello è il codice del mio servizio:
012.public class ExampleService extends AbstractService {
private static final String SERVICE_NAME = "ExampleService";
public ExampleService() {
super(SERVICE_NAME);
}
@Override
public AbstractRegistration getRegistration() {
return new AbstractRegistration() {
@Override
public String getApplicationName() {
return getResources().getString(R.string.application_name);
}
@Override
public String getApplicationDescription() {
return getResources().getString(R.string.application_description);
}
@Override
public PendingIntent getApplicationSettings() {
return PendingIntent.getActivity(getApplicationContext(), 0, new Intent(getApplicationContext(), ExampleActivity.class), 0);
}
@Override
public boolean requiresStorage() {
return true;
}
@Override
public boolean requiresQueries() {
return true;
}
@Override
public boolean requiresRecognition() {
return true;
}
};
}
}
Ecco il mio file manifesto:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="eu.gambas.example.android" >
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="15" />
<uses-permission android:name="eu.gambas.permission.ACCESS" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="18" />
<application
android:icon="@drawable/icon"
android:label="@string/application_name" >
<activity
android:name="com.example.egm.exampleandroid.ExampleActivity"
android:label="@string/application_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.example.egm.exampleandroid.ResultActivity" />
<activity android:name="com.example.egm.exampleandroid.shareInfos" />
<activity android:name="com.example.egm.exampleandroid.testActivity" />
<service
android:name="com.example.egm.exampleandroid.ExampleService"
android:exported="true" >
<intent-filter>
<action android:name="eu.gambas.action.start" />
</intent-filter>
<intent-filter>
<action android:name="eu.gambas.action.stop" />
</intent-filter>
<intent-filter>
<action android:name="eu.gambas.action.result" />
</intent-filter>
</service>
</application>
Grazie in anticipo per il vostro aiuto!
Vediamo che manifestano por favor. – ApolloSoftware
I servizi di molte attività diventano disordinati. Ci sono due modi per affrontarlo. Avrei sottoclasse la classe Application e avrei fatto un po 'di lavoro personalizzato. Il secondo modo è convertire le tue attività multiple in frammenti, in questo modo renderà il servizio sostanzialmente migliore! – ApolloSoftware
Ho aggiunto il mio file manifest alla mia domanda. Per quanto riguarda l'uso dei frammenti, come legarli al servizio? Grazie! – sabrina2020