相关疑难解决方法(0)

如何获取android中的当前前台活动上下文?

每当我的广播被执行时,我想向前台活动显示警报.

android android-activity

156
推荐指数
8
解决办法
27万
查看次数

通过静态方法访问SharedPreferences

我有一些信息存储为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气味?

提前致谢.

android static-methods sharedpreferences android-activity

31
推荐指数
4
解决办法
5万
查看次数

如何获得最顶层活动的任何标识符?

我有一个服务,当最顶层的Activity更改时,它的行为必须改变.比如,活动A处于活动状态,然后服务开始某种处理.当活动A不再可见时,此处理必须停止:用户按下"返回","主页"或执行任何使活动A不可见的操作.此活动A必须不知道该服务 - 即它必须不必明确告知服务它正在消失.

简而言之,有没有办法:

  • 获取最顶层Activity的任何类型的标识(对象引用,类名,ID等),
  • 最顶层活动更改时收到通知?

PS这可能听起来像恶意软件行为,但事实并非如此!这是合法的用例!

编辑:活动不在我的应用程序中.它们几乎可以是任何东西 - 浏览器,地图应用程序,设置等.

android

11
推荐指数
1
解决办法
1万
查看次数

如何使用Robotium/Android SDK找出堆栈顶部的Activity?

我有一个Android应用程序的Robotium测试,它扩展了ActivityInstrumentationTestCase2.测试在循环上运行,随机单击活动视图.我想在每次迭代开始时验证哪个Activity当前是关注的.这种行为对我很重要,因为其中一个按钮能够启动另一个Activity,在循环中进行进一步的操作是不可能的,因为它们引用了测试中的Activity(这是我停止Robotium测试的时候).

我想要一个适用于任何Activity的通用解决方案,而无需更改onDestroy()方法.当按下Home按钮时,此解决方案也必须有效.

android robotium android-sdk-tools android-activity

10
推荐指数
1
解决办法
473
查看次数

是否可以检测到用户何时打开屏幕(Android)?

我发现两年前的帖子说有人无法做到。我还发现可以使用ACTION_USER_PRESENT来检测用户何时解锁屏幕,但是可以检测到用户何时打开屏幕(通过任何操作)?

编辑:我想知道用户何时按下任何按钮或执行其他可以打开屏幕的操作

android android-screen android-wake-lock

5
推荐指数
2
解决办法
2847
查看次数

Android-Telephony应用程序,专注于来电

我正在开发一个能够接听电话的自定义电话应用程序.使用此代码处理来电 https://code.google.com/p/auto-answer/source/browse/trunk/src/com/everysoft/autoanswer/AutoAnswerIntentService.java

不幸的是,我的应用程序失去了对来电的关注.

对于拨打电话Android-电话应用程序而言,这是一个部分解决方案 ,可以专注于拨出和拨入电话

来电怎么样?如何将注意力集中在自定义应用中?

我猜这可能涉及下载和修改源代码,因为简单地访问SDK几乎无法控制内置电话应用程序.

android kernel cyanogenmod telephonymanager

5
推荐指数
1
解决办法
1236
查看次数