android - 在 Android 中通过 getApplicationContext() 使用静态方法?

标签 android sms

<分区>

我正在开发一个名为 Drive Mode 的应用程序,它允许用户在设置中输入自定义消息,并让该消息自动回复任何传入的文本。 (当然还有其他功能)我的问题是尝试引用静态字符串并使用 getApplicationContext();

我正在从 EditTextPreference 中获取文本,并试图在多个 Activity 中访问该字符串。

已修复:此问题现已修复,我编辑了整篇文章以更好地帮助可能遇到同样问题的其他人。感谢您提供的所有帮助。

public class Main extends Activity implements OnSharedPreferenceChangeListener {

    ...

    public static String reply = "";

    ...

    public void loadPreferences() {
        SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        settings.registerOnSharedPreferenceChangeListener(Main.this);

        if (settings.getBoolean("cbReply", true)) {
            reply = settings.getString("tbMessage", "@string/pd_message");
            ...
        } else {
            ...
        }

最佳答案

您可以通过添加 Context 参数使这些方法成为静态的

public static void reply(Context context) {
    SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
    final String message = settings.getString("message", "@string/pd_message");

    send(context, Receiver.number, message);
}

public void send(Context context, String number, String message) {
    PendingIntent pi = PendingIntent.getActivity(context, 0, new Intent(context, Main.class), 0);
    SmsManager sm = SmsManager.getDefault();
    if (Receiver.number != "") {
        sm.sendTextMessage(number, null, message, pi, null);
    }
}

关于android - 在 Android 中通过 getApplicationContext() 使用静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17509462/

相关文章:

java - onReceive 永远不会接到电话!

android - 如何在 Android 中没有 SMS_READ 或类似权限的情况下发送短信并接收结果

android:(坏)布局背景图像质量低

Android禁用 ListView 项目

android - Genymotion android 模拟器显示很多日志

android - 等待进程完成以启动另一个进程

android - 添加动画作为标记 google maps android

java - C2DM 推送聊天应用

sms - 使短信验证码易于复制

android - Adb emu 命令有时不起作用