我正在尝试为我的检测测试找到一种方法来访问测试包中生成的字符串资源.
更多细节:
我有一个继承自ActivityInstrumentationTestCase2的Android测试用例.我首先使用Eclipse的新Android测试项目来创建测试.测试项目有资源(类似于常规Android项目的资源).我试图找到一种方法以编程方式访问各个测试中的测试项目中的String资源.我试过了:
String s = getInstrumentation().getContext().getString(R.string.blah);
Run Code Online (Sandbox Code Playgroud)
和
String s = mActivity.getApplicationContext().getString(R.string.blah);
Run Code Online (Sandbox Code Playgroud)
两种方法都抛出NotFoundException.我在strings.xml中定义了字符串"blah".上面代码中的R是从我的测试包导入而不是被测试的应用程序包.我可以使用后一个调用访问应用程序包中定义的资源.
在我的测试中找出一种访问XML定义的字符串资源的方法是有用的(因为我想避免在代码中键入字符串).我究竟做错了什么?
我有一个应用程序在堆栈中的几个级别的活动中遇到异常.我还在状态栏通知+对话框模式中使用ACRA进行崩溃报告.我看到的情况是,当我的进程因异常而被杀死时,Android会将活动堆栈重新创建到违规活动的父级.我想覆盖这种行为.如果我的应用程序崩溃了,我希望它仍然崩溃.
android-developers中有关于此的讨论:
我还阅读了此堆栈溢出线程中的讨论: 阻止活动堆栈被还原?
但我正在寻找平台上是否有更新此技术或更新技术.现在,重新启动行为导致ACRA出现问题,因为一旦重新创建活动堆栈就会清除崩溃报告通知,从而使用户没有时间发送报告.