java - 从 MainActivity 调用新 Activity 的方法

标签 java android android-activity

有两个 Activity ..
1.从MainActivity中打开SecondActivity
2.当事件进入MainActivity时,调用SecondActivity的testMethod

但是如何调用这个测试方法呢?

public class MainActivity extends Activity implements someListener {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Launch SecondActivity here!!
        Intent intent = new Intent();
        intent.setClass(MainActivity.this, SecondActivity.class);
        startActivityForResult(intent, ID_PlayerActivity);
    }

    //trigger by JNI, it's in the other thread, not main thread.
    void onEventCome() {
        //How to call testMethod() in SecondActivity?
    }
}
<小时/>
public class SecondActivity extends Activity {
    void testMethod() {
        //execute something...
    }
}

最佳答案

如果您打开 SecondActivity,您的 MainActivity 将变为非 Activity 状态。我认为从其他不活动/停止的 Activity 中调用某些 Activity 方法不是一个好主意。

我建议使用observer pattern 。创建一个像 EventProducer 这样的全局长期对象,并将所有 Activity 注册为观察者。因此您的 EventProducer 可以通知所有 Activity 有关新事件的信息。

示例:

public class SecondActivity extends Activity implements MyEventListener {

    @Override
    public void onResume(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EventProducer.instance().register(this);
    }

    @Override
    public void onPause(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EventProducer.instance().unregister(this);
    }

    void testMethod(){
        //just doit
    }

    @Override
    void onMyEventCome() {
        testMethod();
    }
}

关于java - 从 MainActivity 调用新 Activity 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28959223/

相关文章:

java - 什么是在任何位置追加、前置和检索元素的 O(1) 复杂度的数据结构?

java - 无法在 Android 中以 AM、PM 格式正确显示时间

具有折叠工具栏的 fragment 中的 Android 选项卡

android - 插入android日历事件后返回android中的上一个 Activity

java - Android 设备不显示背景图片

c# - 我们应该密封单例吗?我们应该首先尝试继承单例吗?

java - Hybris 中的自定义产品 URL 解析器

相对布局中的 Android ScrollView 问题

android - Gradle 脱糖失败,层次结构不完整

Android Jetpack 导航库和 onActivityResult