简体   繁体   English

单击小部件时如何进入另一个应用程序

[英]How to get to another application on click of a widget

I want to get to another application when I click my widget . 单击widget时,我想转到另一个应用程序。 It doesn't seem to be working. 它似乎不起作用。 Please tell me where I am going wrong. 请告诉我我要去哪里了。 Here's my code so far. 到目前为止,这是我的代码。

public class MyWidgetProvider extends AppWidgetProvider {

    public String team1name;
    public String team2name;
    public String team1score;
    public String team2score;
          @Override
            public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {
                super.onUpdate(context, appWidgetManager, appWidgetIds);
                Log.i(MyWidgetProvider.class.toString(), "Onupdate called for " + this);

                  RemoteViews remoteViews = new RemoteViews(context.getPackageName (), R.layout.widget_layout); 

                  Intent in = new Intent(Intent.ACTION_MAIN);
                  PackageManager packageManager = context.getPackageManager();
                  in = packageManager.getLaunchIntentForPackage("com.playup.android.adapters");
                  in.addCategory(Intent.CATEGORY_LAUNCHER);
                  PendingIntent pendingIntent2 = PendingIntent.getActivity(context,0 /* no requestCode */, in, 0 /* no flags */);
                  remoteViews.setOnClickPendingIntent(R.id.layout, pendingIntent2);

                  ComponentName thisWidget = new ComponentName(context, MyWidgetProvider.class);
                  AppWidgetManager manager = AppWidgetManager.getInstance(context);
                  manager.updateAppWidget(thisWidget, remoteViews);
            }
            public void onReceive(Context context, Intent intent){
                Bundle extras = intent.getExtras();
                if (extras == null) {
                  return;
                }
                team1name = extras.getString("team1name");
                team2name = extras.getString("team2name");
                team1score = extras.getString("team1score");
                team2score = extras.getString("team2score");    


                    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
                      remoteViews.setTextViewText(R.id.team1name, team1name);
                      remoteViews.setTextViewText(R.id.team2name, team2name);
                      remoteViews.setTextViewText(R.id.team1score, team1score);
                      remoteViews.setTextViewText(R.id.team2score, team2score);

                        ComponentName cn = new ComponentName(context, MyWidgetProvider.class);  
                        AppWidgetManager.getInstance(context).updateAppWidget(cn, remoteViews);
            }
} 

I simply added some code from onUpdate() method to onReceive() method and it worked. 我只是将一些代码从onUpdate()方法添加到onReceive()方法中,并且它可以正常工作。 This is the code. 这是代码。

      Intent in = new Intent(Intent.ACTION_MAIN);
      PackageManager packageManager = context.getPackageManager();
      in = packageManager.getLaunchIntentForPackage("com.playup.android.adapters");
      in.addCategory(Intent.CATEGORY_LAUNCHER);
      PendingIntent pendingIntent2 = PendingIntent.getActivity(context,0 /* no requestCode */, in, 0 /* no flags */);
      remoteViews.setOnClickPendingIntent(R.id.layout, pendingIntent2);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM