Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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 启动时运行的调试应用程序_Java_Android_Broadcastreceiver_Boot - Fatal编程技术网

Java 启动时运行的调试应用程序

Java 启动时运行的调试应用程序,java,android,broadcastreceiver,boot,Java,Android,Broadcastreceiver,Boot,我正在使用Android Studio 我为我的应用程序添加了一个BroadcastReceiver,它接收android.intent.action.BOOT_。完成后,接收器只显示一个祝酒词供测试。问题是我在Android启动后收到“应用程序已停止”的消息 我的第一个问题是:在启动时是否有必要调试它,看看自己的问题出在哪里?因为我在Android Studio中看不到任何关于这个问题的日志 我的第二个问题与问题本身有关。代码如下: XML: 第三个问题是:在接收器中执行一些繁重的工作(读取一

我正在使用Android Studio

我为我的应用程序添加了一个BroadcastReceiver,它接收android.intent.action.BOOT_。完成后,接收器只显示一个祝酒词供测试。问题是我在Android启动后收到“应用程序已停止”的消息

我的第一个问题是:在启动时是否有必要调试它,看看自己的问题出在哪里?因为我在Android Studio中看不到任何关于这个问题的日志

我的第二个问题与问题本身有关。代码如下: XML:

第三个问题是:在接收器中执行一些繁重的工作(读取一些文件并设置AlarmManager)而不是创建一个服务是否可以?因为从API 26开始,Android对服务施加了很多限制


谢谢

启动时启动的应用程序可以在设备获得调试连接的那一刻进行调试,这通常发生在应用程序本身启动之前。只需打开logcat,观察设备和应用程序在重新启动后弹出。请注意,这假设应用程序是可调试的。不显示日志的应用程序将不会显示任何日志

您收到的
MyApp不幸停止了
消息,原因很明显:

public class AutoStartReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "loaded", Toast.LENGTH_LONG).show();
        throw new UnsupportedOperationException("Not yet implemented");
    }
}
您抛出一个异常,意味着它将停止


至于您在服务中所做的工作,只要它在合理数量的RAM和处理器内使用(非常繁重的服务更有可能被终止以节省电池和内存),您就可以开始调试我使用的部分(在终端中,当模拟器打开时):

adb外壳am设置调试应用程序-w——持久化
要开始调试,当应用程序在模拟器上提示时,单击将调试器附加到android进程

要禁用此功能,请执行以下操作:

adb shell am clear-debug-app <your.app.package>
adb shell am clear调试应用程序

在这里找到答案:

大部分情况下,就是这样。但我无法获取应用程序在Android启动时加载的日志,日志是空的
public class AutoStartReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "loaded", Toast.LENGTH_LONG).show();
        throw new UnsupportedOperationException("Not yet implemented");
    }
}
adb shell am set-debug-app -w --persistent <your.app.package> 
adb shell am clear-debug-app <your.app.package>