- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 Robolectric 1.1 和 Roboguice 2 的测试套件。它运行良好。
我将 AppWidget 添加到应用程序 list 中,如下所示:
<receiver android:name="NearestOpenCragWidgetProvider" android:exported="false">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/nearest_open_crag_widget_info" />
</receiver>
我创建了一个类
public class NearestOpenCragWidgetProvider extends AppWidgetProvider {
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
final int N = appWidgetIds.length;
// Perform this loop procedure for each App Widget that belongs to this provider
for (int i=0; i<N; i++) {
int appWidgetId = appWidgetIds[i];
//get the layout
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
R.layout.nearest_open_crag_widget);
// Tell the AppWidgetManager to perform an update on the current app widget
appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
}
}
}
和 res/xml 中的 AppWidgetProviderInfo xml
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" >
android:minWidth="294dp"
android:minHeight="72dp"
android:updatePeriodMillis="86400000"
android:initialLayout="@layout/nearest_open_crag_widget"
android:resizeMode="none">
</appwidget-provider>
并且还添加了布局 nearest_open_crag_widget
现在,当我运行我的测试时,它们会立即失败
java.lang.ArrayIndexOutOfBoundsException: -1
at com.xtremelabs.robolectric.ApplicationResolver.replaceLastDotWith$IfInnerStaticClass(ApplicationResolver.java:55)
at com.xtremelabs.robolectric.ApplicationResolver.registerBroadcastReceivers(ApplicationResolver.java:47)
at com.xtremelabs.robolectric.ApplicationResolver.resolveApplication(ApplicationResolver.java:36)
at com.xtremelabs.robolectric.RobolectricTestRunner.createApplication(RobolectricTestRunner.java:491)
at com.xtremelabs.robolectric.RobolectricTestRunner.setupApplicationState(RobolectricTestRunner.java:368)
at com.xtremelabs.robolectric.RobolectricTestRunner.internalBeforeTest(RobolectricTestRunner.java:307)
at com.xtremelabs.robolectric.RobolectricTestRunner.methodBlock(RobolectricTestRunner.java:285)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
应用程序以 2.3 为目标,如果我在 Android Manifest 中注释掉 Widget 声明,测试将再次开始运行。
我显然遇到了一些问题,想知道主脑是否能发现它。
最佳答案
原来问题应该是“如何添加小部件提供者而不是白痴”。如果我在 android list 中使用 Provider 的完全限定名称,那么一切都很好
<receiver android:name="uk.co.some.package.NearestOpenCragWidgetProvider" android:exported="false">
<blah />
</receiver>
关于android - 如何在不破坏 Robolectric 的情况下添加 WidgetProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12492483/
对于 Android Widget API,有些东西我真的不明白。 我编写了一个带有配置 Activity 的小部件,每次我使用 adb 安装应用程序时,即使未显示该小部件,也会调用 WidgetPr
在任何 Activity 的正常 Android 代码中,我可以控制可绘制背景的颜色 Drawable d = findViewById(R.id.button_highlight).getBackg
我需要我的小部件在应用程序的另一部分提供的相同功能。在列表 Activity 中。如何在自定义 View 中重用我的小部件?我想把Widget 放到View 上?如何才能做到这一点?构建自定义主机。我
我有一个使用 Robolectric 1.1 和 Roboguice 2 的测试套件。它运行良好。 我将 AppWidget 添加到应用程序 list 中,如下所示:
在我的小部件中,我启动了 Timer。它工作正常,一切正常。但是,如果我从主屏幕中删除小部件,则不会调用 onDisable 或 onDeleted。 我尝试使用 onReceive,但我的 Log.
我有 2 个小部件,每个小部件都有自己的 WidgetProvider。这是类层次结构: AppWidgetProvider | CommonWidget
我正在实现一个具有 ConfigurationActivity 的小部件,并且必须与 Eclair(2.1) 保持兼容。 documentation关于 AppWidgetProviders onUp
我正在尝试检测何时单击小部件按钮,但 onReceive 方法中没有显示任何 Intent extra。 onReceive 会在每次点击时调用,但我的 Intent extras 都不会出现。 我的
我是一名优秀的程序员,十分优秀!