- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 3 个 Activity 第一个是登录第二是注册第三个主页 Activity (Bottom_nav) 带有底部导航,有 3 个 fragment A、B、C。
登录 Activity 是启动器 Activity 。
检查登录用户是否已经登录如果用户未登录,则重定向到注册 Activity 除了家庭 Activity 。
我在家庭 Activity 中实现了 onBackPressed()但是双击后退按钮 Activity 会暂停并恢复。
这是我的代码:
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
我哪里错了?我没有找到任何相关的答案
最佳答案
请使用这个。
boolean doubleBackToExitPressedOnce = false;
@Override
public void onBackPressed() {
if (!doubleBackToExitPressedOnce){
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);
}else {
if (getSupportFragmentManager().getBackStackEntryCount() != 0) {
getSupportFragmentManager().popBackStack();
} else {
super.onBackPressed();
finish();
}
}
}
在打开 fragment 时你必须使用这个
getSupportFragmentManager().beginTransaction().replace(R.id.MainFrame, new HomeFragment()).addToBackStack(null).commit();
关于android - onBackPressed() 应用程序未关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53368374/
我有一个包含 2 个 Activity 的应用程序,第一个是从 http 加载数据并显示标题,第二个是特定标题的详细信息。 在硬件上从第二个屏幕按下第一页不会重新加载,这很好。 在后面的操作栏上,页面
我试图返回确认对话框,因此我决定处理 onbackpressed(),然后我将我的代码用于确认对话框,并为 null 监听器设置了 ok 和取消按钮。 @Override public void on
我有三个 java Activity : MainActivity 是您打开应用程序时的第一个屏幕。另外两个是PlayActivity和GuessActivity我在 Play 和 Guess Act
我已经坚持了好几天了。我有一个 Activity 。我实现了 @Override public void onBackPressed() { Log.e("TEST", "Pressed ba
我有一个带有 BottomNavigation 的应用程序(3 个项目)。 Item 1 加载 Fragment 1,Item 2 加载 Fragment 2,Item 3 加载 Fragment 3
我想在我的动态壁纸设置上实现 Appbrain 插页式广告, 我按照 - http://www.appbrain.com/info/sdk-docs/interstitial.html 上给出的步骤进
我有一个问题,这里也讨论了这个问题: onBackPressed never gets called 我试图在按下 Android 手机上的 native 后退按钮时取消倒计时计时器。所以我想重写 o
我尝试使用以下内容配置“后退”按钮: Public void onBackPressed(){return;} 但它不会产生任何东西(我也尝试过 super.onBack... 和 finish)。我
我正在尝试添加此功能: -当点击 Return 按钮时,它会弹出一个退出提示 (AlertDialog with yes or no) 问题 但是它不能正常工作。如果我点击按钮,它会直接退出程序。 这
我想按照下面的方式进行编码.. boolean doubleBackToExitPressedOnce = false; @Override public void onBackPressed() {
我正在制作一个电视 channel 流媒体应用程序,当从 ListView 中点击一个 channel 时,它会转到另一个 Activity ,然后会弹出播放器选择窗口,并在选择播放器后播放视频。现在
我有 3 个 Activity 第一个是登录第二是注册第三个主页 Activity (Bottom_nav) 带有底部导航,有 3 个 fragment A、B、C。 登录 Activity 是启动器
这是我的应用程序的结构: Activity A 是一个 ListViewActivity,带有启动 B Activity 的按钮。 在完成表单后的 B Activity 中,有一个按钮可以启动 C A
我正在编写一个小游戏,在开始屏幕上,有不同的选项,比如开始游戏,开始一个新的 Activity 。但其他按钮,如“法律内容”或“教程”,仅通过 setContentView 显示新的 XML 布局。
我有一个包含 WebView 的 Activity ,我在打开时传递了 URL,像这样: Intent activity = new Intent(getApplicationContext(),Ne
如果我在 Android 1.5 上使用 onBackPressed(),我的应用程序会崩溃。如果在 Android 1.5 设备上运行,是否有可能停用此功能? 那里的代码不是绝对必要的,而是真正的“
基本上我的应用程序有一个登录屏幕,登录后您可以进行许多 Activity 。当我按下主页按钮时,应用程序进入后台,如果用户在一定时间内没有打开它,用户 session 将关闭,您将返回到登录屏幕。现在
我正在尝试通过单击后退按钮关闭我的应用程序。在主屏幕上,后退按钮会将您带到制作人员屏幕。在该积分屏幕上,我想使用后退按钮关闭该应用程序。不幸的是,我正在调用的 onBackPressed() 方法似乎
我有 3 个自定义对话框 (DialogFragment)。所有这些都是不可取消的,因为有必要,用户不能关闭它们。第一个对话开始第二个,第二个开始第三个。现在我想回到上一个对话框,如果我正在使用 ba
实际上我的问题是,当我按下后退按钮时,它会显示一个对话框,同时应用程序完成时没有对键进行任何操作?谁能解决这个问题? @Override public void onBackPressed() {
我是一名优秀的程序员,十分优秀!