Java 获取当前正在运行的活动的上下文
我想知道是否有办法获得android上当前运行活动的上下文。例如,我有一个活动类,它正在运行。我想要的是调用另一个简单的类来运行一些从Activity类调用的函数。通过这样做,我需要在简单类上设置活动类的上下文;另一方面,我需要有当前运行活动的上下文,以便我的简单类能够实际运行从当前运行活动调用的函数 下面是我的项目中的软代码Java 获取当前正在运行的活动的上下文,java,android,Java,Android,我想知道是否有办法获得android上当前运行活动的上下文。例如,我有一个活动类,它正在运行。我想要的是调用另一个简单的类来运行一些从Activity类调用的函数。通过这样做,我需要在简单类上设置活动类的上下文;另一方面,我需要有当前运行活动的上下文,以便我的简单类能够实际运行从当前运行活动调用的函数 下面是我的项目中的软代码 public class Main1 extends Activity { private static GetAPNsInfo getAPNsInfo = ne
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
}
});
}
}
最后,我这个线程的目的是,我需要一个好的方法来获取当前正在运行的活动信息
这是我自己找到的解决方案。但这并不能完全解决这个问题。我们可以在Manifest.xml中添加一个接收方。这将运行一个后台应用程序
<receiver android:name=".RunningActivityCapture">
<intent-filter android:priority="-1">
<action android:name="android.intent.action.NEW_OUTGOING_CALL"></action>
</intent-filter>
</receiver>
我只从会话类获取活动,该设置来自我的后台应用程序。这是我解决这个问题的第一个想法。但代码是不正确的。因此,我需要您的帮助。如果您询问如何在helper类中使用此
MainActivity
,您可以将活动本身传递到类中,因为活动是一个上下文。因此,您的构造函数将是:
public GetAPNsInfo(Context context) {
...
}
将上下文存储在字段中并稍后使用。您将使用
private static GetAPNsInfo getAPNsInfo = new GetAPNsInfo(this);
如果您询问如何获取应用程序中任何活动的上下文,我认为不建议这样做。如果您询问如何在助手类中使用此
MainActivity
,您可以将活动本身传递到类中,因为活动是上下文。因此,您的构造函数将是:
public GetAPNsInfo(Context context) {
...
}
将上下文存储在字段中并稍后使用。您将使用
private static GetAPNsInfo getAPNsInfo = new GetAPNsInfo(this);
如果您询问如何获取应用程序中任何活动的上下文,我认为不建议这样做。这是我不需要的。我已经在我的线程中添加了一个最终目的。我想要的是获取当前跑步活动信息。如果有上百个任务在上百个活动上运行相同的东西,那么我需要为每个活动设置上下文吗?如果这样做,这将成为一项巨大的工作。也许不建议在我的应用程序中获得任何活动。但是应该有一种方法可以只获得一项顶级活动。我可以用接收器来解决这个问题吗?你为什么要这么做?也许有更好的方法,也许有更好的方法来捕捉顶级活动。我正在搜索ActivityManager和RunningTaskInfo。这些应该会有帮助。如果你尝试这样做,很可能只会导致更多的问题。例如,在您的问题中,您的代码使用
findviewbyd
在当前运行的活动中查找按钮。然而,当那个活动没有这样的按钮时会发生什么呢?这是我不需要的。我已经在我的线程中添加了一个最终目的。我想要的是获取当前跑步活动信息。如果有上百个任务在上百个活动上运行相同的东西,那么我需要为每个活动设置上下文吗?如果这样做,这将成为一项巨大的工作。也许不建议在我的应用程序中获得任何活动。但是应该有一种方法可以只获得一项顶级活动。我可以用接收器来解决这个问题吗?你为什么要这么做?也许有更好的方法,也许有更好的方法来捕捉顶级活动。我正在搜索ActivityManager和RunningTaskInfo。这些应该会有帮助。如果你尝试这样做,很可能只会导致更多的问题。例如,在您的问题中,您的代码使用findviewbyd
在当前运行的活动中查找按钮。但是,当该活动没有此类按钮时会发生什么?