我有一些信息存储为SharedPreferences.我需要从外部的Activity(从域模型类中)访问该信息.所以我在Activity中创建了一个静态方法,我只用它来获取共享首选项.
这给了我一些问题,因为显然不可能从静态方法调用方法"getSharedPreferences".
这是eclipse给我的信息:
Cannot make a static reference to the non-static method
getSharedPreferences(String, int) from the type ContextWrapper
Run Code Online (Sandbox Code Playgroud)
我尝试使用Activity实例来解决这个问题,如下所示:
public static SharedPreferences getSharedPreferences () {
Activity act = new Activity();
return act.getSharedPreferences("FILE", 0);
}
Run Code Online (Sandbox Code Playgroud)
此代码提供null点异常.
有解决方法吗?我试图这样做,我会进入一个android-code气味?
提前致谢.
我有一个服务,当最顶层的Activity更改时,它的行为必须改变.比如,活动A处于活动状态,然后服务开始某种处理.当活动A不再可见时,此处理必须停止:用户按下"返回","主页"或执行任何使活动A不可见的操作.此活动A必须不知道该服务 - 即它必须不必明确告知服务它正在消失.
简而言之,有没有办法:
PS这可能听起来像恶意软件行为,但事实并非如此!这是合法的用例!
编辑:活动不在我的应用程序中.它们几乎可以是任何东西 - 浏览器,地图应用程序,设置等.
我有一个Android应用程序的Robotium测试,它扩展了ActivityInstrumentationTestCase2.测试在循环上运行,随机单击活动视图.我想在每次迭代开始时验证哪个Activity当前是关注的.这种行为对我很重要,因为其中一个按钮能够启动另一个Activity,在循环中进行进一步的操作是不可能的,因为它们引用了测试中的Activity(这是我停止Robotium测试的时候).
我想要一个适用于任何Activity的通用解决方案,而无需更改onDestroy()方法.当按下Home按钮时,此解决方案也必须有效.
我发现两年前的帖子说有人无法做到。我还发现可以使用ACTION_USER_PRESENT来检测用户何时解锁屏幕,但是可以检测到用户何时打开屏幕(通过任何操作)?
编辑:我想知道用户何时按下任何按钮或执行其他可以打开屏幕的操作
我正在开发一个能够接听电话的自定义电话应用程序.使用此代码处理来电 https://code.google.com/p/auto-answer/source/browse/trunk/src/com/everysoft/autoanswer/AutoAnswerIntentService.java
不幸的是,我的应用程序失去了对来电的关注.
对于拨打电话Android-电话应用程序而言,这是一个部分解决方案 ,可以专注于拨出和拨入电话
来电怎么样?如何将注意力集中在自定义应用中?
我猜这可能涉及下载和修改源代码,因为简单地访问SDK几乎无法控制内置电话应用程序.