16

最初我的应用程序已关闭,当我收到来自 GCM 推送服务的新消息时,我正在从我的类中的onMessage()开始一个新活动,该活动扩展了GCMIntentService. 我想使用调试器检查一些错误。我的问题是,有没有办法从推送通知启动时调试应用程序?

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

4

1 回答 1

22
@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();放在代码中要停止执行并附加调试器的任何位置。请记住在完成调试后将其删除。

于 2018-10-24T09:08:17.777 回答