Android 从 java 类回调到 Activity

标签 android android-activity callback

如何从 Java 类中回调 Activity?

例子:

    public class TestClass{
    String text = "Test";
    public TestClass(Context context){
            startActivity(new Intent(context, SomeActivity.class));
    }

    private void sendToSomeActivity(){
      //Call some method of SomeActivity and pas text as string
    }

   }

sendToSomeActivity() 被调用时,我想回调已经启动的 SomeActivity 并将一些文本传递给 Activity。在 SomeActivity 我想使用文本。

注意:我要使用的 TestClass 对象已经在另一个类中创建。

如何做到这一点?

最佳答案

我选择的方案如下:

使用 BroadcastReceivers 在 Java 类和 Activity 之间进行通信。

例子:

public class SomeActivity extends Activity{
    private MyBroadcastReceiver receiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        receiver = new MyBroadcastReceiver();
        this.registerReceiver(receiver, new IntentFilter(MyBroadcastReceiver.ACTION));
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        this.unregisterReceiver(receiver);
    }

    private class MyBroadcastReceiver extends BroadcastReceiver{
        public static final String ACTION = "com.example.ACTION_SOMETHING"
        @Override
        public void onReceive(Context context, Intent intent) {
            String test = intent.getStringExtra("dataToPass");
        }
    }
} 

public class TestClass{
    private String test = "TEST";
    private Context context;

    public TestClass(Context context){
      this.context = context;
    }
    private void sendToSomeActivity(){
       Intent intent = new Intent();
       intent.setAction(SomeActivity.MyBroadcastReceiver.ACTION);
       intent.putExtra("dataToPass", test);
       context.sendBroadcast(intent); 
    }

}

关于Android 从 java 类回调到 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29257546/

相关文章:

java - Robotium_constructor 在 super 的 NotepadTest 方法中弃用了消息

android - 有没有一种方法可以不使用 onNewIntent 来获取 NFC UID?

android - 可以使用不同的 viapoints 设置替代路线吗?

android - 尝试在空对象引用上调用虚拟方法 'void android.widget.TextView.setText(java.lang.CharSequence)'

android - 如何使用特定 fragment 启动 Activity 但 Activity 不依赖于 fragment ?

android - 为什么我的 Activity 会泄漏?

android - 使 Android NFC onTagDiscovered 回调线程保持 Activity 状态

安卓jpg动画

javascript - Jquery:变量未在回调中初始化?

javascript - 异步对象操作