Gelöschter Account
- Forum-Beiträge: 694
07.08.2012, 10:13:20 via Website
07.08.2012 10:13:20 via Website
Mehrfach im Forum nachgefragt, deshalb als Schnipsel:
Receiver im Service:
Activity schickt "Befehl" an laufenden Service:
Receiver im Service:
1// Im Service
2public class MyService extends Service {
3
4 // Inner Class BroadcastReceiver
5 public class MyBroadcastReceiver extends BroadcastReceiver {
6
7 // Der Name des dynamischen BroadcastReceivers
8 public static final String TAG = "dein.package.MyService.MyBroadcastReceiver";
9
10 // Liste der moeglichen "Befehle" an den Service
11 public static final int ACTION_IRGENDWAS = 1;
12
13 @Override
14 public void onReceive(final Context context, final Intent intent) {
15 if (intent != null) {
16 Bundle bundleExtras = intent.getExtras();
17
18 if (bundleExtras != null) {
19 int action = bundleExtras.getInt("ACTION");
20 if (action == ACTION_IRGENDWAS) {
21 // ...
22 }
23 }
24 }
25 }
26 }
27
28 // Var
29 private MyBroadcastReceiver receiver;
30
31 @Override
32 public void onDestroy() {
33 // ...
34 processStopBroadcastReceiver();
35 // ...
36 }
37
38 // Alternativ im onCreate()
39 @Override
40 public int onStartCommand(final Intent intent, final int flags, final int startId) {
41 // ...
42 processStartBroadcastReceiver();
43 // ...
44 }
45
46 // Methode zum Starten des BroadcastReceivers
47 private void processStartBroadcastReceiver() {
48 IntentFilter intentFilter = new IntentFilter(MyBroadcastReceiver.TAG);
49
50 receiver = new MyBroadcastReceiver();
51 if (receiver != null && intentFilter != null) {
52 registerReceiver(receiver, intentFilter);
53 }
54 }
55
56 // Methode zum Stoppen des BroadcastReceivers
57 private void processStopBroadcastReceiver() {
58 if (receiver != null) {
59 unregisterReceiver(receiver);
60 receiver = null;
61 }
62 }
63}
2public class MyService extends Service {
3
4 // Inner Class BroadcastReceiver
5 public class MyBroadcastReceiver extends BroadcastReceiver {
6
7 // Der Name des dynamischen BroadcastReceivers
8 public static final String TAG = "dein.package.MyService.MyBroadcastReceiver";
9
10 // Liste der moeglichen "Befehle" an den Service
11 public static final int ACTION_IRGENDWAS = 1;
12
13 @Override
14 public void onReceive(final Context context, final Intent intent) {
15 if (intent != null) {
16 Bundle bundleExtras = intent.getExtras();
17
18 if (bundleExtras != null) {
19 int action = bundleExtras.getInt("ACTION");
20 if (action == ACTION_IRGENDWAS) {
21 // ...
22 }
23 }
24 }
25 }
26 }
27
28 // Var
29 private MyBroadcastReceiver receiver;
30
31 @Override
32 public void onDestroy() {
33 // ...
34 processStopBroadcastReceiver();
35 // ...
36 }
37
38 // Alternativ im onCreate()
39 @Override
40 public int onStartCommand(final Intent intent, final int flags, final int startId) {
41 // ...
42 processStartBroadcastReceiver();
43 // ...
44 }
45
46 // Methode zum Starten des BroadcastReceivers
47 private void processStartBroadcastReceiver() {
48 IntentFilter intentFilter = new IntentFilter(MyBroadcastReceiver.TAG);
49
50 receiver = new MyBroadcastReceiver();
51 if (receiver != null && intentFilter != null) {
52 registerReceiver(receiver, intentFilter);
53 }
54 }
55
56 // Methode zum Stoppen des BroadcastReceivers
57 private void processStopBroadcastReceiver() {
58 if (receiver != null) {
59 unregisterReceiver(receiver);
60 receiver = null;
61 }
62 }
63}
Activity schickt "Befehl" an laufenden Service:
1// In einer Activity
2public class MyActivity extends Activity {
3
4 // Methode zum Verschicken eines Broadcast
5 private void processSendBroadcast(final String receiver, final int action) {
6 Intent intent = new Intent();
7 intent.putExtra("ACTION", action);
8 intent.setAction(receiver);
9 sendBroadcast(intent);
10 }
11
12 // ... und so wird der Broadcast an den laufenden Service versendet
13 processSendBroadcast(MyService.MyBroadcastReceiver.TAG, MyService.MyBroadcastReceiver.ACTION_IRGENDWAS);
14}
2public class MyActivity extends Activity {
3
4 // Methode zum Verschicken eines Broadcast
5 private void processSendBroadcast(final String receiver, final int action) {
6 Intent intent = new Intent();
7 intent.putExtra("ACTION", action);
8 intent.setAction(receiver);
9 sendBroadcast(intent);
10 }
11
12 // ... und so wird der Broadcast an den laufenden Service versendet
13 processSendBroadcast(MyService.MyBroadcastReceiver.TAG, MyService.MyBroadcastReceiver.ACTION_IRGENDWAS);
14}
— geändert am 07.08.2012, 13:02:39
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.