Activity stoppt Service/Widget???

  • Antworten:4
Michele
  • Forum-Beiträge: 1.525

13.09.2013, 12:19:21 via Website

Hallo liebes Forum.

Ich teste gerade eine Widget. Die einen Service und eine Activity hat.
Die Activity ist dafür da um z.B eine Anleitung zuzeigen für meine Widget.

Wenn ich die Activity Starte und beende ist noch alles ok. Schmeiße ich sie aber aus dem
Task raus denn stoppt auch der Service. Und somit stoppt auch meine Widget.
Da meine Widget(AppWidgetProvider) durch/mit den Service läuft.

Leider habe ich nichts dazu bei Google gefunden. Oder ich suche falsch.
Gibt es eine Möglichkeit das die Activity mein Service nicht anfässt/stoppt?


LG

— geändert am 13.09.2013, 12:20:18

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

13.09.2013, 13:51:44 via Website

kA, ohne Code ist das wenig zu sagen. Services laufen ja auch gewöhnlich nicht immer. Sondern hin und wieder. Ws sagt den die Android Docs dazu ?

Stack Trace ?

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Michele

Antworten
Michele
  • Forum-Beiträge: 1.525

13.09.2013, 14:48:10 via Website

Hallo.

Code ist erstmal ganz einfach:

1public class UpdateWidget extends Service {
2
3 @Override
4 public void onCreate() {
5 super.onCreate();
6 }
7
8 @Override
9 public void onStart(Intent intent, int startId) {
10 super.onStart(intent, startId);
11
12 AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this.getApplicationContext());
13 int[] allWidgetIds = intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS);
14
15 for (int widgetId : allWidgetIds) {
16
17 RemoteViews remoteViews = new RemoteViews(this.getApplicationContext().getPackageName(),R.layout.widget);
18 Intent intentTwo = new Intent(getApplicationContext(), AppWidget.class);
19 intentTwo.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
20 intentTwo.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS,allWidgetIds);
21 PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intentTwo,PendingIntent.FLAG_UPDATE_CURRENT);
22 remoteViews.setOnClickPendingIntent(R.id.button, pendingIntent);
23 appWidgetManager.updateAppWidget(widgetId, remoteViews);
24
25 }
26 stopSelf();
27 }
28
29 @Override
30 public IBinder onBind(Intent intent) {
31 return null;
32 }
33}

Ist der Service geschlossen, kein klick mehr möglich auf den Button.
Ich dachte erst es liegt an stopSelf();.
Tut es aber nicht.
LogCat sagt kein Error etc.

Stack Trace? Habe ich mich noch nicht mit angefreundet.
Sollte ich gleich mal tun.



LG

— geändert am 13.09.2013, 14:48:54

Antworten
Gelöschter Account
  • Forum-Beiträge: 93

13.09.2013, 16:03:47 via App

Wie und wo startest Du den Service?

Antworten
Michele
  • Forum-Beiträge: 1.525

13.09.2013, 16:26:07 via Website

Hallo.

Durch die Widget.

Im AppWidgetProvider:

1public class AppWidget extends AppWidgetProvider {
2
3 @Override
4 public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {
5
6 Intent intent = new Intent(context.getApplicationContext(),UpdateWidget.class);
7 intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
8 context.startService(intent);
9
10 }
11}


LG

Antworten