android에서 현재 실행중인 활동의 컨텍스트를 가져 오는 방법이 있는지 궁금합니다. 예를 들어, 활동 클래스가 있고 실행 중입니다. 내가 원하는 것은 Activity 클래스에서 호출 한 일부 함수를 실행하기 위해 다른 Simple 클래스를 호출하는 것이다. 이렇게함으로써, 나는 단순한 클래스에 Activity Class의 문맥을 설정할 필요가있다; 다른 방법으로, 현재 실행중인 활동의 컨텍스트가 있어야합니다. 따라서 실제 클래스가 현재 실행중인 활동에서 호출 된 함수를 실행할 수 있습니다.현재 실행중인 활동의 컨텍스트 가져 오기
다음은 내 프로젝트의 소프트 코드입니다.
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>
배경 응용 프로그램 인터페이스의 모양을
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;
}
}
나는 단지 내 배경 응용 프로그램에서 설정 세션 클래스에서 활동을 얻는다. 이 문제를 해결하기위한 첫 번째 아이디어입니다. 그러나 코드가 올바르지 않습니다. 그래서 네 도움이 필요해.
내가 필요한 것은 아닙니다. 이미 스레드에 최종 목적을 추가했습니다. 내가 원하는 것은 현재 실행중인 활동 정보를 얻는 것입니다. 수백 개의 작업에 100 개의 작업이있는 경우 동일한 작업을 실행하므로 각 작업에 대해 Context를 설정해야합니까? 이렇게하면 큰 일이 될 것입니다. – user964409
아마 내 응용 프로그램에서 모든 활동을 얻으려고하지 않는 것이 좋습니다. 그러나 단 하나의 최고 운영 활동을 얻는 방법이 있어야합니다. 이 문제를 해결하기 위해 수신기를 사용할 수 있습니까? – user964409
무엇을하려고합니까? 아마도 더 좋은 방법이있을 것입니다. – Craigy