标签: android-appwidget

onUpdate 的 appWidgetIds[] 中有哪些 id?

执行方法的数组appWidgetIds中的 ids

公共无效onUpdate(上下文上下文,AppWidgetManager appWidgetManager,int [] appWidgetIds){

都属于我的应用程序吗?

如果是这样,那么我的 Android 的必杀技中会有一些应用程序小部件,因为如果我删除所有应用程序小部件,数组中仍然保留一些 id,这些 id 不会显示在我的主屏幕上。:-(

有没有办法删除所有小部件?

android background identifier android-appwidget

4
推荐指数
1
解决办法
1656
查看次数

APPWIDGET_UPDATE 接收器的目的是什么

我正在开发一个由不再在公司工作的人编写的 Android 应用程序,并且不明白为 AppWidget 更新创建接收器的目的是什么。清单具有在应用程序启动时运行的主要活动。据我所知,appwidget 从未被使用过,它的代码与应用程序的其余部分是分开的。我不知道这是剩余的并且可以删除还是仍在使用。我发现的所有教程和示例都解释了如何实现这一点,但并不是真正解释为什么要这样做,尤其是在这种情况下。

清单文件中的代码:

<application
    android:debuggable="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/ConnectTheme" >
    <activity
        android:name="com.globalcrossing.connect.ConferenceListView"
        android:label="@string/listTitle" >
        <intent-filter android:label="@string/app_name" >
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.globalcrossing.connect.Preferences"
        android:label="@string/set_preferences" >
    </activity>
    <!-- Broadcast Receiver that will process AppWidget updates -->
    <receiver
        android:name="com.globalcrossing.connect.ConferenceWidget"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/widget_provider" />
    </receiver>
... more activities I understand, deleted for brevity
 </application>
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver android-manifest android-appwidget

4
推荐指数
1
解决办法
5974
查看次数

如何将 onClick 侦听器附加到应用小部件上的列表视图项

我喜欢向我的列表视图的每个项目添加一个 onClick 侦听器,但我尝试过的一切都不起作用。

这是我的 RemoteViewsFactory:

public class MyRemoteViewsFactory implements RemoteViewsService.RemoteViewsFactory {

    [...]

    public RemoteViews getViewAt(int position) {

        final RemoteViews remoteView = new RemoteViews(
            context.getPackageName(), R.layout.widget_item);

        [...]

        final Intent activityIntent = new Intent(context, ListActivity.class);
        activityIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
        activityIntent.putExtra(AppWidgetManager.ACTION_APPWIDGET_PICK, position);
        PendingIntent pI = PendingIntent.getActivity(
            context, appWidgetId, activityIntent, PendingIntent.FLAG_UPDATE_CURRENT);

        remoteView.setOnClickPendingIntent(R.id.item_frame, pI);

        return remoteView;
    }
}
Run Code Online (Sandbox Code Playgroud)

列表小部件.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/widget_frame"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical" >

    <include layout="@layout/picture_frame" />

    <ListView
        android:id="@+id/list_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_toRightOf="@+id/picframe"
        android:layout_margin="5dp"
        android:gravity="center"
        android:loopViews="true" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

列表项.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout …
Run Code Online (Sandbox Code Playgroud)

android listview android-appwidget

4
推荐指数
1
解决办法
2791
查看次数

AppWidget更新服务不会在正在从主机删除的窗口小部件上停止

我想要做的是,一旦AppWidget从用户的Android手机的主屏幕中删除,我想停止更新AppWidget的后台服务.

这是我正在使用的代码...不明白什么是错的?

@Override
 public void onDeleted(Context context, int[] appWidgetIds){
 Intent serviceIntent = new Intent(context, UpdateService.class);
 context.stopService(serviceIntent);
 super.onDeleted(context, appWidgetIds);
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢您的帮助.

android android-widget android-appwidget

3
推荐指数
1
解决办法
3227
查看次数

Android AppWidget配置 - 从新任务开始

我搜索并搜索并搜索了这个!

所以我有一个应用程序小部件,它有一个配置活动,我可以在应用程序上按下按钮时打开.场景是:

该应用程序打开了.

使用主页按钮关闭应用程序.

选择添加我的小部件

我已经配置了小部件.

放在我的主屏幕上

然后使用窗口小部件上的按钮再次打开配置活动.

按回来取消新配置将把我带回应用程序.

按下后我想回家.

基本上我要问的是.如何在自己的任务/堆栈中启动配置活动?

我已经调查了意图过滤器,但我只是不太确定,或者它可能与它所在的包有关,或者它可能是不可能的!

我想这可能与我用来启动配置活动的意图有关

 Intent configIntent = new Intent(this, Configuration.class);
 configIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);      
 remoteView.setOnClickPendingIntent(R.id.config, PendingIntent.getActivity(this, 0, configIntent, PendingIntent.FLAG_UPDATE_CURRENT));
Run Code Online (Sandbox Code Playgroud)

也许是因为我用'this'作为上下文启动它,它总是在我的应用程序堆栈中启动...但是挂起的意图api是:PendingIntent API 1 "注意,活动将在现有活动的上下文之外启动"

所以,是的,我现在就停止说话,因为我最终会进入圈内!

编辑

所以android:launchMode="singleInstance"在清单中尝试过就像所说的那样.这有效但它会阻止'startActivityForResult'行为正常工作.(这是配置活动的全部原因)获取错误:

WARN/ActivityManager(59):活动作为新任务启动,因此取消活动结果.

所以仍然没有找到解决方案.

configuration stack android manifest android-appwidget

3
推荐指数
1
解决办法
3660
查看次数

如何自动推进ListView应用程序小部件,如Honeycomb上的StackView应用程序小部件?

我正在寻找一种方法来定期动画/自动推进ListView应用程序小部件,就像使用StackView应用程序小部件一样.

例如,Android Market和YouTube小部件通过自动前进到集合中的下一个项目(在Honeycomb上)每20秒进行一次动画制作.

我在StackView Widget示例中看到他们对StackView小部件使用autoAdvanceViewId设置:

<appwidget-provider
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:minWidth="150dip"
  android:minHeight="150dip"
  android:updatePeriodMillis="3600000"
  android:previewImage="@drawable/preview"
  android:initialLayout="@layout/widget_layout"
  android:autoAdvanceViewId="@id/stack_view">
</appwidget-provider>
Run Code Online (Sandbox Code Playgroud)


是否可以以某种方式为ListView应用程序小部件完成或模拟?

非常感谢,
劳伦特

animation android android-3.0-honeycomb android-appwidget

3
推荐指数
1
解决办法
2662
查看次数

如何安装所有小部件的ID?

我需要找到任何AppWidget id来测试一些功能.执行此操作的代码:

List<AppWidgetProviderInfo> infos = mAppWidgetManager.getInstalledProviders();

        for (int i = 0; i < infos.size(); i++) {
            int ids[] = mAppWidgetManager.getAppWidgetIds(infos.get(i).provider);
            if (ids.length != 0) {
                Log.d("TAG", "Found non-zero-length provider!");
                id = ids[0];
                info = infos.get(i);
                break;
            }
        }
Run Code Online (Sandbox Code Playgroud)

但是ids []长度总是0!为什么以及如何解决它?

更新:我已将此行添加到循环的开头:

Log.d("TAG", provider.getPackageName() + "; " + provider.getClassName());
Run Code Online (Sandbox Code Playgroud)

它打印:

D/TAG     ( 5686): Providers count: 12
D/TAG     ( 5686): com.andrew.apollo; com.andrew.apollo.app.widgets.AppWidget11
D/TAG     ( 5686): com.andrew.apollo; com.andrew.apollo.app.widgets.AppWidget41
D/TAG     ( 5686): com.andrew.apollo; com.andrew.apollo.app.widgets.AppWidget42
D/TAG     ( 5686): com.android.browser; com.android.browser.widget.BookmarkThumbnailWidgetProvider
D/TAG     ( 5686): com.android.calendar; com.android.calendar.widget.CalendarAppWidgetProvider …
Run Code Online (Sandbox Code Playgroud)

android android-appwidget

3
推荐指数
1
解决办法
4646
查看次数

保留app widget GridView中的图像宽高比

我正在开发一个具有多个应用程序小部件的应用程序,其中一些正在使用a GridView来显示其内容.内容是一堆电影封面艺术图像,我想保留图像的原始宽高比.

或者,我正在寻找一种方法来声明图像的宽高比.GridView然而,重要的是图像仍然适合用户改变应用程序小部件大小的宽度.

由于ImageView在处理RemoteViews 时不可能使用子类,这是不可能的.我目前使用ScaleType.CENTER_CROPImageView以及所定义的高度和宽度,但你可以想像,这不是完美的.

有什么建议?

android android-gridview remoteview android-appwidget

3
推荐指数
1
解决办法
2177
查看次数

Android;强制AppWidget从SD卡工作?

有没有办法强迫AppWidget工作,甚至App被移动到SD卡而SD卡不是unmounted文件说:

...如果您的应用程序使用以下任何功能,则不应允许将其安装在外部存储上,因为在卸载外部存储时会引起后果:
...
应用程序小部件
您的应用程序小部件将从主屏幕.重新装入外部存储时,在系统重置主应用程序之前,用户无法选择您的应用程序小组件(通常直到系统重新启动).

似乎文档说AppWidget将从主屏幕if用户卸下SD卡.但是当我将模拟器中的App移动到SD卡(我没有卸载SD卡)时,problem loading widget在主屏幕中看到消息,小部件也不可用对于小部件列表中的用户.为什么?

android android-sdcard android-appwidget

3
推荐指数
1
解决办法
3865
查看次数

Android updateAppWidget不会更新

我的问题很严重Android application:

调用

AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
appWidgetManager.updateAppWidget(appWidgetId, getWidgetView(context, appWidgetId));
Run Code Online (Sandbox Code Playgroud)

在该public void onReceive(Context context, Intent intent)方法中根本没有结果.该RemoteViews所产生看起来是有效的(编程而言),但widget不更新(它保留旧值).

我发现了一些类似的问题,但没有人回答:

android android-appwidget

3
推荐指数
3
解决办法
2878
查看次数