New RelicのAndroid Agentを組み込んで頂くと、ActivityやFragmentの起動が自動で取得され、Interactionに記録されます。ただし、お客様の実装によっては、自動計装では記録されないケースがあります。Activityは記録されるのに、FragmentがInteractionに記録されない場合、onCreate()
が実装されていないことが原因の可能性が高いと思われます。
Android StudioでFragmentが利用されているサンプルプロジェクトを作成した場合、onCreateView()
は実装されているが、onCreate()
が実装されていません。そのため、自身のFragmentのクラスにて、onCreate()
を実装しない開発者の方々も多くおられると思います。FragmentのInteraction自動取得には、onCreate()
が実装される必要があるようですので、以下のように実装を追加してみてください。
public class MyFragment extends Fragment {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
また、共通のBaseクラスを作成しており、そちらでonCreate()
を実装しているが、実体化されるクラスではonCreate()
の実装を行っていないケースもあるかと思われます。また、全クラスにonCreate()
の実装を追加するのも手間という場合もあると思います。その場合は、自動計装は行われませんが、以下のような実装をベースクラスに追加していただくことで、同等の情報を取得できるようになります。
public class MyFragmentBase extends Fragment {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
NewRelic.startInteraction("Display ".concat(this.getClass().getSimpleName()));
}
なお、AndroidのFragmentに関して、Android OSにより提供されるクラスやAndroid Jetpack (AndroidX)により提供されるクラスなど、いくつかベースクラスがありますが、基本的にはどのベースクラスでも問題なく取得いただけると思います。
次のステップ
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。