Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法在收到使用GCM的推送通知时调试应用程序?_Java_Android_Eclipse_Google Cloud Messaging - Fatal编程技术网

Java 有没有办法在收到使用GCM的推送通知时调试应用程序?

Java 有没有办法在收到使用GCM的推送通知时调试应用程序?,java,android,eclipse,google-cloud-messaging,Java,Android,Eclipse,Google Cloud Messaging,最初,我的应用程序关闭,当我收到来自GCM推送服务的新消息时,我将从我的类中启动一个新的活动,扩展到gcminentservice。我想使用调试器检查一些错误。我的问题是,当从推送通知启动应用程序时,是否有一种调试方法 为了更清楚一点,我有一个BroadcastReceiver和一个附加的服务。即使应用程序已关闭,它也会接收广播并根据收到的消息启动活动应用程序可能在未打开时接收广播。现在,当应用程序打开时,我收到一条推送消息,然后我就可以调试它了。但问题是当应用程序关闭并接收广播时,如何调试它?

最初,我的应用程序关闭,当我收到来自GCM推送服务的新消息时,我将从我的类中启动一个新的活动,扩展到
gcminentservice
。我想使用调试器检查一些错误。我的问题是,当从推送通知启动应用程序时,是否有一种调试方法


为了更清楚一点,我有一个
BroadcastReceiver
和一个附加的服务。即使应用程序已关闭,它也会接收广播并根据收到的消息启动活动应用程序可能在未打开时接收广播。现在,当应用程序打开时,我收到一条推送消息,然后我就可以调试它了。但问题是当应用程序关闭并接收广播时,如何调试它?

@Override
public void onMessageReceived(RemoteMessage remoteMessage)
{
    /*
      the following line will halt the app here
      to give you time to attach the debugger
    */
    android.os.Debug.waitForDebugger();

    /*
      then you can put a breakpoint on any line
      after that, like here:
    */
    Log.d("onMessageReceived", "From: " + remoteMessage.getFrom());

    ...
}

您可以将行
android.os.Debug.waitForDebugger()代码中要停止执行并附加调试器的任何位置。只需记住在调试完成后将其删除。

有什么原因使您无法在调试模式下使用设置的断点启动应用程序并对其进行后台处理?您不能像这样按需连接调试器,因为您的注释@Neiti01需要afaikthank。我不明白你所说的背景是什么意思。我可以从eclipse以调试模式启动我的应用程序并设置断点。问题是,如果我从设备退出应用程序,那么调试将停止(这是预期的)。现在我有一个广播接收器和一个附加的服务。即使应用程序已关闭,它也将接收广播并启动活动。应用程序可能在未打开时接收广播。现在,当应用程序打开时,我收到一条推送消息,然后我就可以调试它了。但问题是当应用程序关闭并接收到广播时,如何调试它?我希望问题现在更清楚了。感谢您耐心阅读长篇评论。我说的“背景信息”是指只需按下主页按钮。这不应该停止进程,它应该仍然在运行,调试器应该仍然被连接,BroadCastReceiver中的断点将被触发。在收到GCM后,当从通知中调用应用程序时,您是否找到了调试方法?2020年7月,仍然可以完美运行!为了安全起见,我建议总是将其包装在“if(BuildConfig.DEBUG)”中。