mithilfe von application service in einer anderen Anwendung

Ich habe ein android-Anwendung, die einen Dienst enthält. Jetzt möchte ich den Zugriff auf dieses service in einer anderen Anwendung. Wie kann ich das tun? Ich fand diese Anwendung über Netz. finden Sie code-Schnipsel Balg

1>
public class LocalWordService extends Service {

    private final IBinder mBinder = new MyBinder();
    private ArrayList<String> list = new ArrayList<String>();

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        Random random = new Random();
        if (random.nextBoolean()) {
            list.add("Linux");
        }
        if (random.nextBoolean()) {
            list.add("Android");
        }
        if (random.nextBoolean()) {
            list.add("iPhone");
        }
        if (random.nextBoolean()) {
            list.add("Windows7");
        }
        if (list.size() >= 20) {
            list.remove(0);
        }
        return Service.START_NOT_STICKY;
    }

    @Override
    public IBinder onBind(Intent arg0) {
        return mBinder;
    }

    public class MyBinder extends Binder {
        LocalWordService getService() {
            return LocalWordService.this;
        }
    }

    public List<String> getWordList() {
        return list;
    }

}


2>

public class MyScheduleReceiver extends BroadcastReceiver {


    //Restart service every 30 seconds
        private static final long REPEAT_TIME = 1000 * 30;

        @Override
        public void onReceive(Context context, Intent intent) {
            AlarmManager service = (AlarmManager) context
                    .getSystemService(Context.ALARM_SERVICE);
            Intent i = new Intent(context, MyStartServiceReceiver.class);
            PendingIntent pending = PendingIntent.getBroadcast(context, 0, i,
                    PendingIntent.FLAG_CANCEL_CURRENT);
            Calendar cal = Calendar.getInstance();
            //Start 30 seconds after boot completed
            cal.add(Calendar.SECOND, 30);
            //
            //Fetch every 30 seconds
            //InexactRepeating allows Android to optimize the energy consumption
            service.setInexactRepeating(AlarmManager.RTC_WAKEUP,
                    cal.getTimeInMillis(), REPEAT_TIME, pending);

            //service.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
            //REPEAT_TIME, pending);

        }

}

3>
public class MyStartServiceReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Intent service = new Intent(context, LocalWordService.class);
        context.startService(service);
    }

}

4>
public class MyService extends Service {

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

}

- und manifest-Datei ist wie folgt

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="de.vogella.android.ownservice.local.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service
            android:name="de.vogella.android.ownservice.local.LocalWordService"
            android:icon="@drawable/ic_launcher"
            android:label="@string/service_name" >
        </service>

         <service
            android:name="de.vogella.android.ownservice.local.MyService"
            android:process=":meinprocess"
            android:icon="@drawable/ic_launcher"
            android:label="@string/service_name" >
        </service>

        <receiver android:name="de.vogella.android.ownservice.local.MyScheduleReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>
        <receiver android:name="de.vogella.android.ownservice.local.MyStartServiceReceiver" >
        </receiver>
    </application>
InformationsquelleAutor Robert Smith | 2013-05-02
Schreibe einen Kommentar