java - 获取当前正在运行的 Activity 的上下文

标签 java android

我想知道是否有一种方法可以获取 Android 上当前正在运行的 Activity 的上下文。例如,我有一个 Activity 类并且它正在运行。我想要的是调用另一个简单类来运行从 Activity 类调用的一些函数。通过这样做,我需要在简单类上设置 Activity 类的上下文;另一方面,我需要具有当前正在运行的 Activity 的上下文,以便我的简单类可以实际运行从当前正在运行的 Activity 调用的函数。

下面是我项目中的软代码。

public class Main1 extends Activity {
    private static GetAPNsInfo getAPNsInfo = new GetAPNsInfo();
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
                getAPNsInfo.doSomething();
    }
}

public class GetAPNsInfo {
    public void doSomething() {
        Button button = currentRunningActivityContext.findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
            }
        });
    }
}

最后,我此线程的目的是我需要一种好方法来获取当前正在运行的 Activity 信息。

这是我自己找到的解决方案。但这并不能彻底解决这个案子。我们可以在Manifest.xml中添加接收器。这将运行后台应用程序。

<receiver android:name=".RunningActivityCapture">
        <intent-filter android:priority="-1">
            <action android:name="android.intent.action.NEW_OUTGOING_CALL"></action>
        </intent-filter>

    </receiver>

后台应用程序界面如下所示:

public class RunningActivityCapture extends BroadcastReceiver {

    @Override
    public void onReceive(Context aContext, Intent intent) {
        String action = intent.getAction();

        if (action.equals(Intent.ACTION_ALL_APPS)) {
            Activity activty = intent.getCurrentActivity();
            Session session = new Session();
            session.setRunningActivity(activty);
        }
        return;
    }
}

我只从 session 类获取 Activity ,该 Activity 是从我的后台应用程序设置的。这是我解决这个问题的第一个想法。但代码不正确。所以我需要你的帮助。

最佳答案

如果您询问如何在辅助类中使用此 MainActivity,您可以将 Activity 本身传递到您的类中,因为 Activity 上下文。所以你的构造函数将是:

public GetAPNsInfo(Context context) {
    ...
}

将上下文存储在字段中并在以后使用它。您将初始化

private static GetAPNsInfo getAPNsInfo = new GetAPNsInfo(this);

如果您询问如何获取应用程序中任何 Activity 的上下文,我认为不建议这样做。

关于java - 获取当前正在运行的 Activity 的上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7924601/

相关文章:

java - Sipdroid 构建错误

android - 如何获取应用程序的包名称,然后使用 Intent 启动该应用程序?

android - 当我知道它正在椭圆化时,StaticLayout getEllipsisCount 返回 0?

android - Flutter:尝试将数据添加到 map 列表时出错

java - 使用 session 将参数发送到 Liferay Portlet

java - 我可以用什么来@Path ("/*")工作?

java - 未调用 BeanPostProcessor

javascript - 未捕获的类型错误 : Cannot read property 'pageX' of undefined

java - 无论 Activity 如何, session 都会在 30 分钟内注销

java - Hibernate 不将修改的对象刷新到数据库