AsyncTask in einer Widget (AppWidgetProvider)..

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • AsyncTask in einer Widget (AppWidgetProvider)..

    Hallo alle zusammen.

    Erstmal tolles Forum. Bin Neu hier. :)

    Meine frage. Ich wollte aus dem Internet vom WebSpace/FTP Server was auslesen und in der TextView einsetzen.
    Z.B eine Text.txt Datei. Dazu brauche ich AsyncTask. Funktioniert auch alles Super.

    Nun möchte ich das aber in eine Widget packen.
    Heißt das Widget vorne auf dem Display den Text anzeigt den ich auslese und einsetze aus der Text.txt Datei aus dem Internet.

    Hier mal mein Code:

    Die MainActivity mit der AsyncTask:

    Quellcode

    1. public class MainActivity extends Activity {
    2. public TextView tv;
    3. public String str;
    4. public String inputLine;
    5. public StringBuilder text;
    6. public BufferedReader in;
    7. public URL url;
    8. @Override
    9. protected void onCreate(Bundle savedInstanceState) {
    10. super.onCreate(savedInstanceState);
    11. setContentView(R.layout.activity_main);
    12. tv = (TextView) findViewById(R.id.textView1);
    13. new DownloadTask().execute();
    14. }
    15. private class DownloadTask extends AsyncTask<String, Void, String> {
    16. @Override
    17. protected String doInBackground(String... arg0) {
    18. try {
    19. url = new URL("http://shellsapple.funpic.de/test.txt");
    20. in = new BufferedReader(new InputStreamReader(url.openStream()));
    21. inputLine = null;
    22. text = new StringBuilder();
    23. while ((inputLine = in.readLine()) != null) {
    24. str = in.readLine();
    25. text.append(inputLine);
    26. text.append('\n');
    27. }
    28. in.close();
    29. } catch (MalformedURLException e) {
    30. e.printStackTrace();
    31. } catch (IOException e) {
    32. e.printStackTrace();
    33. }
    34. return null;
    35. }
    36. @Override
    37. protected void onPostExecute(String result) {
    38. tv.setText(text);
    39. tv.setTextColor(Color.BLACK);
    40. }
    41. }
    42. }
    Alles anzeigen


    Klappt wie gesagt alles.

    Dann meine AppWidgetProvider:

    Quellcode

    1. public class AppWidget extends AppWidgetProvider {
    2. @Override
    3. public void onUpdate(Context context, AppWidgetManager appWidgetManager,
    4. int[] appWidgetIds) {
    5. final int N = appWidgetIds.length;
    6. for (int i = 0; i < N; i++) {
    7. int appWidgetId = appWidgetIds[i];
    8. Intent intent = new Intent(context, AppWidget.class);
    9. PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,intent, 0);
    10. RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.activity_main);
    11. views.setTextViewText(R.id.textView1, "Test");
    12. views.setTextColor(R.id.textView1, Color.BLACK);
    13. views.setOnClickPendingIntent(R.id.button1, pendingIntent);
    14. appWidgetManager.updateAppWidget(appWidgetId, views);
    15. }
    16. super.onUpdate(context, appWidgetManager, appWidgetIds);
    17. }
    18. }
    Alles anzeigen


    Wie und was muss ich nun machen das es Funktioniert mit der AsyncTask in einer Widget (AppWidgetProvider)??
    Habe schon vieles versucht aber klappt halt nicht das er den Text benutzt den ich auslese und einsetze in

    Quellcode

    1. RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.activity_main);
    2. views.setTextViewText(R.id.textView1, text);




    LG

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Michele ()