Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android从java类回调一个Activity大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如何从一个 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类和活动之间进行通信.

例:

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全部内容,希望文章能够帮你解决Android从java类回调一个Activity所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。