@LorDDrouS
Учусь создавать android приложения

Как реализовать один метод для всех активити?

Всем привет, такой вопрос, надо отправлять отчет о каждом активити. также нужно запоминать юзера, чтобы в каждом активити, выходило активити открыл + name. реализовал Application и внутри него метод, но почему-то не работает. может кто знает что не так? log писал, но не показывает в logcat
Application.java
public class MyApplication extends Application {

    private static boolean sIsLocationTrackingEnabled = true;

    public static void setLocationTrackingEnabled(final boolean value) {
        sIsLocationTrackingEnabled = value;
    }

    public static boolean isIsLocationTrackingEnabled() {
        return sIsLocationTrackingEnabled;
    }

    @Override
    public void onCreate() {
        super.onCreate();

        /* Replace API_KEY with your unique API key. Please, read official documentation how to obtain one:
         https://tech.yandex.com/metrica-mobile-sdk/doc/mobile-sdk-dg/concepts/android-initialize-docpage/
         */
        YandexMetricaConfig config = YandexMetricaConfig.newConfigBuilder("8b5d0a4e-3b77-458c-bb1f-0affc3da3519").setLogEnabled().build();
        YandexMetrica.activate(this, config);

        YandexMetrica.enableActivityAutoTracking(this);

    }
    public void sendInfo(){
        Map<String, Object> eventAttributes = new HashMap<String, Object>();
        eventAttributes.put("User", 1);
        eventAttributes.put("Событие", "Открыл Main");

        YandexMetrica.reportEvent("Информация", eventAttributes);
    }
}

MainActvity.java
public class MainActivity extends Activity{
    private Button button;
    private final static String TAG = "MainActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //YandexMetrica.activate(getApplicationContext(), "8b5d0a4e-3b77-458c-bb1f-0affc3da3519");

        //YandexMetrica.enableActivityAutoTracking(getApplication());

        button = (Button)findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                startActivity(intent);
            }
        });


    }
    @Override
    protected void onStart() {
        super.onStart();
        ((MyApplication)getApplication()).sendInfo();
        Log.i(TAG,"OnStart");
    }
    @Override
    protected void onStop(){
        super.onStop();
    }
}

вот так работало без класса Application
59fb46d9bd567716537689.png
  • Вопрос задан
  • 255 просмотров
Пригласить эксперта
Ответы на вопрос 1
@davidnum95
Может проще будет сделать свою базовую активити, где определена отправка данных и наследоваться уже от нее?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы