创建应用程序生命周期的日志跟踪

时间:2013-05-27 06:12:57

标签: android application-lifecycle

我创建了一个广泛需要用户输入和交互的应用程序,即使我已经确保我测试并捕获可能引发错误的每个可能的情况,我希望能够创建一个跟踪错误的机制我的应用程序在现场崩溃。

我希望能够直接从按钮单击记录整个流程,直到用户可能正在选择的内容或日志文件中页面之间的导航为止,以防万一我的应用程序崩溃我能够研究跟踪稍后提交并确切知道错误发生的位置。

我对这种编程很新,因此上面的任何指针都会非常有用!提前谢谢你:]

PS:我甚至不确定我所指的是否会被正确地称为“日志跟踪”,因此欢迎任何编辑。 :)

编辑:我还希望能够保存生成的错误报告并将其发送到特定的ID(类似于'向xyz发送错误报告)。

更新:

 public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);


    try {
        File myFiles = new File("/sdcard/ScanApp");

        if(!myFiles.exists())
        {
            myFiles.mkdirs();
        }

        File myFile = new File("sdcard/ScanApp/log.txt");
        myFile.createNewFile();

        myFile.delete();

        myFile.createNewFile();

        String cmd = "logcat -d -v time -f "+myFile.getAbsolutePath()+ " -s ActivityManager:V";
        Runtime.getRuntime().exec(cmd);
        Logs.this.finish();
    } 
    catch (Exception e)
    {
        flag=1;
        error=e.getMessage();
    }

我在以前的应用程序中使用它来记录任何应用程序活动并制作文本文件并将其保存到SD卡,但内容并不完全是我想要的。解决方案是否正在寻找这些方面的东西?

2 个答案:

答案 0 :(得分:0)

您需要查看Exception Handling。也就是说,当您的应用程序崩溃或发生任何其他应用程序级别错误时,异常块中的代码将执行。因此,在该位置,将该错误记录在文本文件中,并解决您的“日志跟踪”问题。

请参阅链接以获取精美的示例。

答案 1 :(得分:0)

在此处,检查link for reference

在这里,你创建了一个类{strong> ExceptionHandler ,implements java.lang.Thread.UncaughtExceptionHandler ..

在这个课程中,你将做一些拯救生命的事情,比如创建堆栈跟踪和准备好上传错误报告等等。

现在是重要部分,即如何捕获该异常。 虽然很简单。在覆盖onCreate方法中调用super方法之后,复制每个Activity中的以下代码行。

Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler(this));

您的活动可能看起来像这样......

public class ForceClose extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler(this));

        setContentView(R.layout.main);
    }
}

希望这会有所帮助......