小编kyr*_*rax的帖子

Android Espresso - 如果未选中则单击复选框

我有onView(withId(R.id.check_box)).perform(click()),但我只想在没有选中复选框的情况下这样做.我怎么能在浓缩咖啡中做到这一点?

testing checkbox android android-espresso

16
推荐指数
2
解决办法
8981
查看次数

如何在Android ExpandableListView中检查组是展开还是折叠?

我正在寻找像isExpanded()或isCollapsed()这样的API来告诉我一个组是展开还是折叠.

expand android expandablelistview expandablelistadapter collapse

10
推荐指数
2
解决办法
1万
查看次数

推送通知在 Android Doze 模式下延迟

我正在通过 adb 让我的 Android 设备进入睡眠状态:

adb shell dumpsys battery unplug
adb shell dumpsys deviceidle step <-- repeat until state is IDLE
Run Code Online (Sandbox Code Playgroud)

然后我发送以下 JSON:

{
   "to":"dYA7tVZrfag:APA91bFVqddVcJHnr_7ZhgNC5iu4Y6XKcLbSVD4DlZgfjMKwKvZhJHiKR4DIzpMrX8zUL15C_adfyEcrlI9q6zOFqFs_zwNPTVIDm-v20ZK0qgagKYGaQE1OPBqdH4P_JHYIXOIS3gfn",
    "priority": "high",
    "data":{
        "test0":"test0",
        "test1":"test1"
    }
}
Run Code Online (Sandbox Code Playgroud)

结果:什么都没有……直到我唤醒设备,然后我才能将所有消息排队。我正在通过将日志放入方法来监视消息是否到来onMessageReceived()

我搜索了一下,有人说使用旧版本的 Android Studio 或升级 FCM SDK 的版本 (9.4.0) 可以解决问题。我都做了,但都没有成功。

编辑:这个问题似乎只发生在三星 Galaxy S5 上

android push-notification firebase-cloud-messaging android-doze

9
推荐指数
0
解决办法
2979
查看次数

另一个java.lang.IllegalArgumentException:参数必须是此视图的后代

用户在某些手机上的应用中遇到以下异常.我试过自己复制错误但不能.我通过堆栈溢出搜索类似的问题,并尝试了他们的解决方案,但似乎没有工作.

以下是我已经尝试过的答案:

  1. 防止/捕获"IllegalArgumentException:参数必须是此视图的后代"错误
  2. java.lang.IllegalArgumentException:参数必须是此视图的后代Error
  3. 设置以下属性: android:windowSoftInputMode="stateHidden|adjustPan"

我有一个edittext但它在expandablelistview之外.

我试图找到解释为什么会发生这种情况以及可能导致它发生的原因.我道歉但我不能发布任何代码.

java.lang.IllegalArgumentException:参数必须是此视图的后代,位于android.view.ViewGroup的android.view.ViewGroup.offsetRectTetMarentMandCoords(ViewGroup.java:4505)上的android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:4568) $.ViewLocationHolder.init(ViewGroup.java:6743)位于android.view上的android.view.ViewGroup $ ViewLocationHolder.obtain(ViewGroup.java:6680)android.view.ViewGroup $ ChildListForAccessibility.init(ViewGroup.java:6638).位于android.view.View.View.View.InitializeAccessibilityNodeInfo的android.view.ViewGroup.onInitializeAccessibilityNodeInfoInternal(ViewGroup.java:2525)的android.view.ViewGroup.addChildrenForAccessibility(ViewGroup.java:1697)上的ViewGroup $ ChildListForAccessibility.obtain(ViewGroup.java:6606) (View.java:5213)android.widget.At上的android.widget.AapListView.onInitializeAccessibilityNodeInfo(AdapterView.java:946)android.widget.ListView.onInitializeAccessibilityN的android.widget.AbsListView.onInitializeAccessibilityNodeInfo(AbsListView.java:1449)odeInfo(ListView.java:3781)位于android.view.View.View.Actin上的android.view.View.View.View.View.View.View.View.View.Actin上的android.widget.ExpandableListView.onInitializeAccessibilityNodeInfo(ExpandableListView.java:1348)(View.java:5174) :5161)在android.view.AccessibilityInteractionController $ AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:811)在android.view.AccessibilityInteractionController $ AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:834)在android.view.AccessibilityInteractionController $ AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController. java:834)at android.view.AccessibilityInteractionController $ AccessibilityNodePrefetcher.prefetchAccessibilityNodeInfos(AccessibilityInteractionController.java:720)at android.view.AccessibilityInteractionController.findAccessibilityNodeInfoByAccessibilityIdUiThread(AccessibilityI)nteractionController.java:147)在android.view.AccessibilityAtroller上获取$ 300(AccessibilityInteractionController.java:49)android.view.AccessibilityInteractionController $ PrivateHandler.handleMessage(AccessibilityInteractionController.java:971)在android.os.Handler.dispatchMessage(Handler. java:102)在android.app.Looper.loop(Looper.java:136)的android.app.ActivityThread.main(ActivityThread.java:5097)at java.lang.reflect.Method.invokeNative(Method.java)at at java.lang.reflect.Method.invoke(Method.java:515)位于com.android.internal.os.ZygoteInit.main的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:785) ZygoteInit.java:601)在dalvik.system.NativeStart.main(NativeStart.java)

android listview exception expandablelistview

6
推荐指数
1
解决办法
6531
查看次数

当应用程序处于后台时,startActivity() 不起作用(在这种特殊情况下)

我正在尝试将我的应用程序从后台带到前台。在onHandleIntent()我的自定义IntentService课程中,我有:

Intent intent = new Intent();
intent.setClass(getApplicationContext(), MainActivity.class); // Also tried with "this" instead of getApplicationContext()
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER); 
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

现在这段代码乍一看可以工作,但我发现了一个不起作用的场景。如果您打开了应用程序并通过主页按钮将其置于后台并startActivity()在大约 5 秒内执行,则应用程序到达前台之前将会有延迟。这是一个已知的实现,您可以在 stackoverflow 上找到讨论的主题。在这种情况下,应用程序成功从后台转到前台。

如果您重复上面相同的实验,但不要等待应用程序进入前台,而是在手机上浏览(滚动、滑动等)(我正在浏览谷歌游戏商店)。结果是,它将startActivity()被调用,但应用程序不会进入前台。

我不是在寻求解决方案,而是更多地解释为什么会发生这种情况。这是有意的行为吗?

android background android-intent start-activity android-intentservice

6
推荐指数
1
解决办法
2187
查看次数

parcelable writeToParcel():编写同一类型的多个变量的最佳方法是什么?

我有十个字符串:str1,str2,str3 ...,str10(不是实际的字符串名称).我是否必须为所有10个字符串执行dest.writeString(str_n)或者是否有更简单的方法来执行此操作?我怎么读回来?

例:

@Override
public void writeToParcel(Parcel dest, int flags) {
      dest.writeString(str1);       
      dest.writeString(str2);   
      dest.writeString(str3);   
      dest.writeString(str4);   
      dest.writeString(str5);   
      dest.writeString(str6);   
      dest.writeString(str7);   
      dest.writeString(str8);   
      dest.writeString(str9);
      dest.writeString(str10);      
}
Run Code Online (Sandbox Code Playgroud)

如您所见,这可能会变得非常冗长.任何建议都会有帮助!谢谢!

java android object parcel parcelable

0
推荐指数
1
解决办法
4715
查看次数