android – Start activity by clicking on widget-ThrowExceptions

Exception or error:

I newbie at programming Android and I try to do a widget which has be able get some data from ISP about my account. There are a lot of unknown things how to do it, but I have did a few things – I’ve got a widget with configure activity, where user should type login and password. Widget stores the data in SharedPerferences, and when it’s time to update widget I use a Service to start an AsyncTask to getting it from ISP an account data. Now I want to do start an activity by click on widget. I’ve tried all advice which I found on this site and widget can’t start activity. My widget based on another widget which placed here I dont understand what and where I should change to start activity by clicking on my widget. Thanks.

My update function, where I suggest I should place PendingIntent

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);

    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(, pendingIntent);

    ComponentName componentName = new ComponentName(context.getPackageName(), WidgetProvider.class.getName());

    appWidgetManager.updateAppWidget(componentName, views);
How to solve:

Use this snippet in onUpdate() method of your widget AppWidgetProvider class:

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widgetlayout);
    Intent configIntent = new Intent(context, Activity.class);

    PendingIntent configPendingIntent = PendingIntent.getActivity(context, 0, configIntent, 0);

    remoteViews.setOnClickPendingIntent(, configPendingIntent);
    appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);

Here widgetlayout is name of your widget layout and is it’s parent layout id.

Now,I see your code that you added to your question.You would to do:

PendingIntent.getActivity(context, 0, configIntent, 0);

(that start’s activity) instead of


that attempt to starts service.Good luck.



Intent inet = new Intent(your_action);
PendingIntent pIntentNetworkInfo = PendingIntent.getActivity(context, 2, 
            inet, Intent.FLAG_ACTIVITY_NEW_TASK);
remoteViews.setOnClickPendingIntent(you_component_when_the_user_pressing_this_activity_should_start, pIntentNetworkInfo);


I don’t know about “Creating widget from another widget”. This is out of my knowledge but I suggest you to build your own widget.

Apart from that, calling activity from widget should be using PendingIntent

Here is simple example to do it

Intent iSetting = new Intent(this, MyConfig.class);
PendingIntent piSetting = PendingIntent.getActivity(this, 0, iSetting, 0);
views.setOnClickPendingIntent(, piSetting);

Or you might need to see this link and this link

Leave a Reply

Your email address will not be published. Required fields are marked *