【发布时间】:2018-11-19 04:34:51
【问题描述】:
我有 3 个活动 第一个是登录 二是注册 第三个主页活动(Bottom_nav),底部导航,有 3 个片段 A、B、C。
登录活动是启动器活动。
在登录用户是否已经登录被检查 如果用户未登录,则重定向到注册活动 其他回家活动。
我已经在家庭活动中实现了 onBackPressed() 但是在双击返回按钮时,活动会暂停并恢复。
这是我的代码:
boolean doubleBackToExitPressedOnce = false;
@Override
public void onBackPressed() {
if (doubleBackToExitPressedOnce) {
super.onBackPressed();
Bottom_nav.this.finish();
return;
}
this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce=false;
}
}, 2000);
}
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
getSupportFragmentManager().beginTransaction().replace(R.id.MainFrame, new HomeFragment()).commit();
return true;
case R.id.navigation_dashboard:
getSupportFragmentManager().beginTransaction().replace(R.id.MainFrame, new ProfileFragment()).addToBackStack(null).commit();
return true;
case R.id.navigation_notifications:
getSupportFragmentManager().beginTransaction().replace(R.id.MainFrame, new NotificationFragment()).addToBackStack(null).commit();
return true;
}
return false;
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bottom_nav);
getSupportFragmentManager().beginTransaction().add(R.id.MainFrame, new HomeFragment()).commit();
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
}
这是日志
V/FA: Recording user engagement, ms: 2650
V/FA: Activity paused, time: 132340044
D/FA: Logging event (FE): user_engagement(_e),
Bundle[{firebase_event_origin(_o)=auto, engagement_time_msec(_et)=2650,
firebase_screen_class(_sc)=Bottom_nav,
firebase_screen_id(_si)=-4687850249260059972}]
D/FA: Logging event (FE): screen_view(_vs),
Bundle[{firebase_event_origin(_o)=auto,
firebase_previous_class(_pc)=Bottom_nav,
firebase_previous_id(_pi)=-4687850249260059972,
firebase_screen_class(_sc)=RegisterPhoneActivity,
firebase_screen_id(_si)=-4687850249260059974}]
V/FA: onActivityCreated
V/FA: Activity resumed, time: 132340054
V/FA: Screen exposed for less than 1000 ms. Event not sent. time: 184
V/FA: Activity paused, time: 132340135
D/FA: Logging event (FE): screen_view(_vs),
Bundle[{firebase_event_origin(_o)=auto,
firebase_previous_class(_pc)=RegisterPhoneActivity,
firebase_previous_id(_pi)=-4687850249260059974,
firebase_screen_class(_sc)=Bottom_nav,
firebase_screen_id(_si)=-4687850249260059971}]
V/FA: Activity resumed, time: 132340244
W/PathParser: Points are too far apart 4.000000000000002
Points are too far apart 4.000000000000002
W/PathParser: Points are too far apart 4.000002058290173
Points are too far apart 4.000002058290173
W/PathParser: Points are too far apart 4.000001624254724
W/PathParser: Points are too far apart 4.000002923700373
Points are too far apart 4.000002923700373
W/PathParser: Points are too far apart 4.00000093640932
V/FA: Inactivity, disconnecting from the service
我哪里出错了?我没有找到任何相关的答案
【问题讨论】:
-
那一刻是否有任何错误显示或应用程序崩溃?如果有任何崩溃,然后发布正确的日志。
-
您的代码是否在检查用户是否仍在登录并重新启动活动?
-
@farhana 没有应用程序崩溃
-
@Jantzilla im 检查用户是否在应用程序启动时登录,但不在 Home Activity 中
-
好的,我知道了,您的启动器屏幕是
LoginActivity,当您按下后它会进入登录屏幕并检查您的登录条件,然后“LoginScreen”会将您重定向到MainActivity跨度>
标签: android android-fragments fragment onbackpressed