如何调试广播接收器?

时间:2011-04-06 18:00:43

标签: android debugging logging adb

通过我的应用程序,我意识到广播接收器是由Android的一般意图解雇的。所以程序没有接口或初始活动。要调试我在开发工具中选择的“等待调试器”,它实际上有效(我可以调试broadcastReceiver)。 我的问题是dalvik在几秒钟后杀死我的线程(以及整个调试),所以我无法检查或尝试逐步执行我的程序。有谁知道如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

你需要你的BroadcastReceiver在清单中有这个:

android:process=":remote"

将其放入onReceive方法:

android.os.Debug.waitForDebugger();

然后运行该项目。之后点击将调试程序附加到Android进程并等待您的进程在窗口中显示(它将具有此名称:your.package.name:remote选择您的进程 ,然后单击确定并开始调试。

enter image description here

答案 1 :(得分:1)

在开发者选项中: 选择调试应用 - >你的应用 等待调试器

答案 2 :(得分:-2)

把你的东西放在另一个线程中:

 public void onReceive(final Context context, Intent intent) {    
    new Thread(new Runnable(){

        @Override
        public void run() {
           Log.i("foo","set me as line breakpoint.");
        }
      }).start();
}