Android 如何在单击小部件时访问另一个应用程序
当我单击我的Android 如何在单击小部件时访问另一个应用程序,android,widget,Android,Widget,当我单击我的小部件时,我想进入另一个应用程序。它似乎不起作用。请告诉我哪里出了问题。 这是到目前为止我的代码 public class MyWidgetProvider extends AppWidgetProvider { public String team1name; public String team2name; public String team1score; public String team2score; @Overrid
小部件时,我想进入另一个应用程序。它似乎不起作用。请告诉我哪里出了问题。
这是到目前为止我的代码
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);
}
}
我只是简单地将onUpdate()方法中的一些代码添加到onReceive()方法中,就成功了。
这是代码
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);
@我编辑了它。但它仍然不起作用。您是否将布局或组件的id设置为布局,并在其中添加了click listener。因为我已经执行了你的代码,它工作正常,除非名为app的包没有安装widget崩溃,但我认为这不会发生在你的情况下。widget没有崩溃,包已经安装