如何调试广播接收器?

问题描述 投票:7回答:3

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

android debugging logging adb
3个回答
2
投票

你需要你的BroadcastReceiver在Manifest中有这个:

android:process=":remote"

把它放在你的onReceive方法中:

android.os.Debug.waitForDebugger();

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

enter image description here


1
投票

在开发人员选项中:选择调试应用程序 - >您的应用程序等待调试器


-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();
}
© www.soinside.com 2019 - 2024. All rights reserved.