アクティビティをどのように取得しますか
Androidで現在のActivityに関する情報を取得するには、以下の方法のいずれかを使用できます。
- アクティビティマネージャ
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> runningTasks = activityManager.getRunningTasks(1);
if (!runningTasks.isEmpty()) {
ComponentName componentName = runningTasks.get(0).topActivity;
String currentActivityName = componentName.getClassName();
// 获取当前Activity的信息
}
- アクティビティライフサイクルコールバック
- onActivityCreated
public class AppLifecycleHandler implements Application.ActivityLifecycleCallbacks {
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
String currentActivityName = activity.getClass().getSimpleName();
// 获取当前Activity的信息
}
// 其他回调方法...
}
アプリケーションクラスにリスナーを登録する:
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(new AppLifecycleHandler());
}
}
これにより、Activityが作成されるたびにonActivityCreatedメソッドが呼び出され、現在のActivityの情報が取得されます。
Androidのバージョンにより一部の手法は非推奨または非対応になる可能性がありますのでご注意ください。そのため、実装の際には使用アプリやターゲットにするAndroidバージョンに応じて調整することをおすすめします。