私はアンドロイド上で現在の実行中の活動のコンテキストを取得する方法があるのだろうかと思います。たとえば、アクティビティクラスがあり、実行中です。私が望むのは、別のシンプルクラスを呼び出して、アクティビティクラスから呼び出されたいくつかの関数を実行することです。これを行うことで、シンプルクラスのアクティビティクラスのコンテキストを設定する必要があります。逆に、現在の実行中アクティビティのコンテキストを持つ必要があります。そのため、シンプルクラスは実際に実行中のアクティビティから呼び出された関数を実際に実行できます。
以下は私のプロジェクトのソフトコードです。
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に受信者を追加することができます。これにより、バックグラウンドアプリケーションが実行されます。
バックグラウンドアプリケーションインタフェースは次のようになります。
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;
}
}
私はバックグラウンド・アプリケーションから設定したセッション・クラスからアクティビティーを取得するだけです。これはこの問題を解決するための私の最初のアイデアです。しかし、コードは正しくありません。だから私はあなたの助けが必要です。
ヘルパークラスでこの MainActivity
の使い方を尋ねる場合は、Activity is Contextとしてアクティビティ自体をクラスに渡すことができます。あなたのコンストラクタは次のようになります:
public GetAPNsInfo(Context context) {
...
}
フィールドにコンテキストを格納し、後で使用します。あなたはで初期化します
private static GetAPNsInfo getAPNsInfo = new GetAPNsInfo(this);
アプリケーションで ANY アクティビティのコンテキストを取得する方法を尋ねている場合は、推奨されていないと思います。