Jag har gjort en Widget som när man klickar på den kör en sak. Den är väldigt enkel och är bara för att man ska slippa gå in i appen och trycka.
Jag vill ha en popup medan den jobbar som säger att den gör det.
Nu gör jag såhär:
I WidgetProvider:
Kod:
// Create an Intent to launch ExampleActivity
Intent intent = new Intent(mContext, WidgetClickHandler.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
PendingIntent pendingIntent = PendingIntent.getActivity(mContext, appWidgetId, intent, 0);
// Get the layout for the App Widget and attach an on-click listener
// to the button
RemoteViews views = new RemoteViews(mContext.getPackageName(), R.layout.widget);
views.setOnClickPendingIntent(R.id.WidgetlinearLayout, pendingIntent);
views.setTextViewText(R.id.WidgetText, db.getGroup(Integer.parseInt(gID)));
// Tell the AppWidgetManager to perform an update on the current app widget
appWidgetManager.updateAppWidget(appWidgetId, views);
Och i activityn:
Kod:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int appWidgetId = getIntent().getExtras().getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);
SharedPreferences prefs = mContext.getSharedPreferences("RAXA", 0);
String hostname = prefs.getString("hostname", "http://***.eu");
String group = prefs.getString("RAXAWidget" + appWidgetId, "n");
if (!group.equals("n")) {
String gID = group.substring(1);
String URL = hostname + "/action.php?group=" + gID;
new HTTPhandler(mContext).execute(URL);
}
//finish();
}
HTTPhandler har hand om jobbet och visar en popup när den börjar samt tar bort den när den är klar.
Som det är nu visas popupen, men när den är klar stannar jag kvar i Activityn. Om jag tar bort kommentaren på finish(); blir det force close när den vill ta bort popupen eftersom den redan dödat Activityn (samt att popupen försvinner).
Om jag lägger till .get() när jag kallar HTTPhandler så väntar den tills den är klar, problemet är att den även väntar med att rita upp activityn så att den bara blinkar till när den jobbat färdigt.
Är det någon som har en bra lösning på mitt problem?