Некоторые действия загружаются сложнее, чем другие, с помощью моего навигационного ящика - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть приложение, которое связывает мои действия с ящиком навигации. Проблема заключается в том, что некоторые действия загружаются сложнее, чем другие (когда я нажимаю значок в ящике, вместо того, чтобы сразу же открывать действие, оно остается на 1-2 секунды. а затем загружает активность). Это может быть глупый вопрос, но возможно ли, если вы дадите мне несколько советов о том, как это исправить?

public class ImportAPI extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{
public TextView fullnameside, emailside;

public static String stravaToken;

public ImageButton btnStrava;
public ImageView tickStrava;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.importapi);


    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    toolbar.setTitle("");
    toolbar.setSubtitle("");

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    View headerView = navigationView.getHeaderView(0);
    fullnameside = (TextView) headerView.findViewById(R.id.fullnameside);
    emailside = (TextView) headerView.findViewById(R.id.emailside);
    fullnameside.setText(""+GetInfo.fullname);
    emailside.setText(""+GetInfo.email);

    navigationView.setNavigationItemSelectedListener(this);
    navigationView.getMenu().getItem(3).setChecked(true);


    //STRAVA
    tickStrava=(ImageView) findViewById(R.id.tickStrava);
    btnStrava=(ImageButton) findViewById(R.id.stravaBtn);
    connectStrava();

}

public void connectStrava(){

    btnStrava.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent getStravaApi= new Intent(ImportAPI.this,StravaSetupApi.class);
            startActivity(getStravaApi);

        }

    });

    //GET ACCESS TOKEN FROM STRAVAS AUTHORIZE ACCOUNT
    String accessToken = StravaAuthenticateActivity.getStravaAccessToken(this);
    stravaToken=accessToken; //make static var so i can use it anywhere i want

    //Get athletes activities from GetStravaAthleteActivities.java
    new GetStravaAthleteActivities.AthleteActivities();

    //check if token is null so i can display the tick and also disable the button press
    if(stravaToken!=null)
    {
        btnStrava.setEnabled(false);
        tickStrava.setVisibility(View.VISIBLE);
    }
    else {
        tickStrava.setVisibility(View.INVISIBLE);
    }

}

1 Ответ

0 голосов
/ 02 ноября 2018

Попробуйте проверить, не виновата ли активность, а не меню ящика. Вы можете рассчитать свой метод onnectStrava (), который может быть причиной задержки. Добавьте сообщения журнала в начало и конец метода.

public void connectStrava(){
Log.d(“TAG”, “STRAVA Entry point);
…
Log.d(“TAG”, “STRAVA Exit point);
}

, затем проверьте метки времени на вашей IDE Logcat и посмотрите, сколько времени потребуется для запуска метода. если это действительно 1-2 секунды, то вы знаете, что вызывает задержку. Если это так, вы можете попробовать запустить метод в отдельном потоке или как AsyncTask, чтобы метод не блокировал ваш пользовательский интерфейс

...