在小部件中打开一个活动

Posted

技术标签:

【中文标题】在小部件中打开一个活动【英文标题】:Open an activity inside a widget 【发布时间】:2013-01-16 19:08:42 【问题描述】:

我知道如何从小部件打开活动。它将全屏打开。

是否可以在小部件中打开一个?

我的活动是应用程序的一部分,它有一个很大的代码。该活动打开一个摄像头并运行一些算法。我可以有一个 4x4 小部件,并使用我的项目算法在小部件内运行活动吗? (基本上是 Activity 的快捷方式,但在小部件内播放)。

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) 

    final int N = appWidgetIds.length;

    for (int i = 0; i < N; i++) 
        int appWidgetId = appWidgetIds[i];

        Intent intent = new Intent(context, ClassToLaunch.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
                intent, 0);

        RemoteViews views = new RemoteViews(context.getPackageName(),
                R.layout.widget_layout);
        views.setOnClickPendingIntent(R.id.widget_id, pendingIntent);

        appWidgetManager.updateAppWidget(appWidgetId, views);
    

【问题讨论】:

我相信这是不可能的 【参考方案1】:

您不能这样做,但您可以充分利用您的布局及其更新间隔,因为小部件有自己的生命周期。

【讨论】:

【参考方案2】:

不要使用活动并使用Fragment。它可以做 Activity 所做的一切(如果需要,可以调用父 Activity 的方法),也可以植入屏幕的专用部分。

【讨论】:

我正在为一个已经完成的大型应用程序编写一个小部件。难道不改app代码就没有办法了吗?

以上是关于在小部件中打开一个活动的主要内容,如果未能解决你的问题,请参考以下文章

当小部件具有配置活动时,无法从小部件启动活动

以编程方式在小部件中设置 TextClock 的日期格式

Android:将对象从集合小部件传递到活动

如何在android小部件中单击图像按钮显示吐司

如何在小部件的容器内显示 pdf [flutter-web]

Wordpress小部件正在管理区域中消失