android interactions

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)により提供されるクラスなど、いくつかベースクラスがありますが、基本的にはどのベースクラスでも問題なく取得いただけると思います。