Android 在活动和类之间共享数据

Android 在活动和类之间共享数据,android,Android,我有一个activityMyActivity,它包含一个服务类MyService。 我希望服务向活动发送字符串数据,然后使用此数据创建按钮。 在发布之后,我在活动中创建了一个static方法。 当然,问题是我不能在静态上下文中使用这个 public class MyActivity extends Activity { private MyService myService; public void onCreate(Bundle savedInstanceState)

我有一个activity
MyActivity
,它包含一个服务类
MyService
。 我希望服务向活动发送
字符串
数据,然后使用此数据创建
按钮。
在发布之后,我在活动中创建了一个
static
方法。
当然,问题是我不能在静态上下文中使用
这个

public class MyActivity extends Activity {


    private MyService myService;


    public void onCreate(Bundle savedInstanceState) {

        setContentView(R.layout.main);
        myService = new MyService();

    }


    public static void connectMethod (String buttonName) {

        Button btn = new Button(this); // error
        btn.setId(i);
        final int buttonID = btn.getId();
        btn.setText(buttonName + buttonID);

    }
}





public class MyService {

    ...

    private void showButton (String data) {
        MyActivity.connectedMethod(data);
    }
}

有两种可能的解决方案可以避免您的
错误

  • 或者创建一个静态类字段:
    私有静态上下文

    public static void connectMethod (String buttonName) {
    
        Button btn = new Button(context); 
        btn.setId(i);
        final int buttonID = btn.getId();
        btn.setText(buttonName + buttonID);
    
    }
    
  • 了解android操作系统中的“绑定服务”
    public static void connectMethod (String buttonName) {
    
        Button btn = new Button(context); 
        btn.setId(i);
        final int buttonID = btn.getId();
        btn.setText(buttonName + buttonID);
    
    }