ホーム画面にニュースを表示しようとしていますが、このコードがあります。配列から5秒後にすべての新しいものを表示したいと思います。
public class PointlessWidget extends AppWidgetProvider{
static final String DATA_TITLE = "T";
static final String DATA_LINK = "L";
static LinkedList<HashMap<String, String>> data1;
static String feedUrl;
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
// TODO Auto-generated method stub
super.onUpdate(context, appWidgetManager, appWidgetIds);
RemoteViews v = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
feedUrl = "http://www.blabla.com";
XMLParser parser = new XMLParser(feedUrl);
data1 = (LinkedList<HashMap<String, String>>)parser.parse();
Iterator<HashMap<String, String>> itr = data1.iterator();
Object element;
HashMap<String, String> entry;
String Temp_URL=null,Temp_TITULO=null,Actual_URL,Actual_TITULO,Anterior_URL = null,Anterior_TITULO,Sigiente_URL,Sigiente_TITULO;
while (itr.hasNext()) {
element = itr.next();
entry = (HashMap<String, String>) element;
mierda = entry.get("T");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
v.setTextViewText(R.id.word_title, mierda);
AppWidgetManager manager = AppWidgetManager.getInstance(context);
manager.updateAppWidget(appWidgetIds, v);
Log.i("***Selected Tab", "Im currently in tab with index::" + mierda);
}
問題は、1つまたは2つの要素を表示できた後、wait()の前にスレッドによってロックされていないオブジェクトのようなものを示しているために停止することです。
どうすればこれを実装できますか?大いに感謝する
サービスを実装しましたが、それでもANRエラーがスローされます。
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
// To prevent any ANR timeouts, we perform the update in a service
context.startService(new Intent(context, UpdateService.class));
}
public static class UpdateService extends Service {
@Override
public void onStart(Intent intent, int startId) {
// Build the widget update for today
RemoteViews v = new RemoteViews(this.getPackageName(), R.layout.widget_layout);
feedUrl = "http://www.blabla.com";
XMLParser parser = new XMLParser(feedUrl);
data1 = (LinkedList<HashMap<String, String>>)parser.parse();
int size = data1.size();
Iterator<HashMap<String, String>> itr = data1.iterator();
Object element;
HashMap<String, String> entry;
String Temp_URL=null,Temp_TITULO=null,Actual_URL,Actual_TITULO,Anterior_URL = null,Anterior_TITULO,Sigiente_URL,Sigiente_TITULO;
while (itr.hasNext()) {
element = itr.next();
entry = (HashMap<String, String>) element;
mierda = entry.get("T");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
v.setTextViewText(R.id.word_title, mierda);
ComponentName thisWidget = new ComponentName(this, PointlessWidget.class);
AppWidgetManager manager = AppWidgetManager.getInstance(this);
manager.updateAppWidget(thisWidget, v);
Log.i("***Selected Tab", "Im currently in tab with index::" + mierda);
}
}
どうすればこれを修正できますか?ありがとうございました!