我在编程Android的新手,我尝试做一个小部件,可以从ISP获取有关我的帐户的一些数据.有很多未知的事情如何做,但我做了一些事情 - 我有一个配置活动的小部件,用户应该键入登录名和密码.窗口小部件将数据存储在SharedPerferences中,当需要更新窗口小部件时,我使用服务启动AsyncTask以从ISP获取帐户数据.现在我想通过点击小部件来开始一项活动.我已经尝试了我在这个网站上找到的所有建议,而且widget无法启动活动.我的小部件基于另一个小部件放在这里https://github.com/Arturus/MetrikaWidget.我不明白我应该通过点击我的小部件来改变什么以及在哪里开始活动.谢谢.
更新:我的更新功能,我建议我应该放置PendingIntent
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{
Log.d(TAG, "onUpdate");
for (int appWidgetId : appWidgetIds)
{
updateAppWidget(context, appWidgetManager, appWidgetId);
}
/* An updateAppWidget functions looks like as:
Intent intent = new Intent(context, UpdateWidgetService.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
context.startService(intent);
*/
Intent intent = new Intent(context, DetailedStatActivity.class);
PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.layout);
views.setOnClickPendingIntent(R.id.layout, pendingIntent);
ComponentName componentName = new ComponentName(context.getPackageName(), WidgetProvider.class.getName());
appWidgetManager.updateAppWidget(componentName, views);
}
Run Code Online (Sandbox Code Playgroud)