我正在尝试制作一个扩展广播接收器类的SMS接收器类。如何从SMS Receiver类中的MainActivity获取共享首选项。例如,如果我想要检查UI中的复选框,我的程序将生成自动循环。那么我怎么能基本上从MainActivity获得这些信息我认为有可能使用sharedpreferneces但我无法找到任何方法来做到这一点。请给我一个解决这个问题的方法。先感谢您。
答案 0 :(得分:0)
onReceive
方法。这是函数头:
public abstract void onReceive (Context context, Intent intent)
请注意,上下文作为参数传递给此函数。此上下文是接收器运行的上下文。继续尝试使用我在下面指定的方法。以下是我的参考:http://developer.android.com/reference/android/content/BroadcastReceiver.html#onReceive%28android.content.Context,%20android.content.Intent%29
希望这有帮助!
原始邮寄: 一种可能的方法是将应用程序上下文作为SMS Receiver类的构造函数参数传递:
public SMSReceiver(Context context, ...[other args]){
this.context = context;
//Rest of constructor code
}
然后当您在活动中实例化SMS Receiver时:
SMSReceiver receiver = new SMSReceiver(this, ...[other args]);
通过此上下文,您可以获得共享首选项。
Preferences preferences = context.getSharedPreferences("NAME", [int Mode]);
用户Pentium10在此链接中提供了有关首选项访问的非常全面的答案: How do I get the SharedPreferences from a PreferenceActivity in Android?
以下是您感兴趣的代码内容(通过一个小编辑来匹配我上面的代码):
import android.preference.PreferenceManager;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
// then you use
prefs.getBoolean("keystring", true); //or whatever method you need to retrieve your data