onBackPressed的用法的文章
来源:互联网 发布:淘宝卖家一个月不发货 编辑:程序博客网 时间:2024/04/30 18:43
back键
Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来, 销毁当前Activity。当此Activity又被其它Activity启动起来的时候,会重新调用OnCreate()方法进行创建,当栈中所有 Activity都弹出结束后,应用也就随之结束了.如果说程序中存在service之类的,则可以在恰当的位置监听处理下也就可以了.
home键
Android程序的隐藏,当你按下手机的Home键的时候,系统会默认调用程序栈中最上层Activity的stop()方法,然后整个应用程序都会被 隐藏起来,当你再次点击手机桌面上应用程序图标时,系统会调用最上层Activity的OnResume()方法,此时不会重新打开程序,而是直接进入, 会直接显示程序栈中最上层的Activity。
back键默认把当前Activity给finish,home键只是把Activity给onStop.
实现按Home键时隐藏程序的效果:
1:Android 2.0之前需要监听按键事件,进行判断是不是按下了back键
2:Android 2.0之后系统提供了一个onBackPressed()方法,这个方法就是专门用来监听back键事件的,所以只需重写onBackPressed()方法即可
在MainActivity中的java中的代码为
package com.example.administrator.myapplication;import android.content.Intent;import android.net.Uri;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.Toast;public class MainActivity extends AppCompatActivity { @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button myButton = (Button) findViewById(R.id.my_button); myButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, Second_Activity.class); startActivityForResult(intent, 1); }; }); } public void onActivityResult(int requestCode, int resultCode, Intent data){ if(requestCode == 1){ if(resultCode == RESULT_OK){ String returnData = data.getStringExtra("data_return"); Log.v("MainActivity", returnData); } } }}
然后activity_main中的代码是
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.administrator.myapplication.MainActivity"> <Button android:id="@+id/my_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button"/></RelativeLayout>
在Second_Activity中的java的代码是
package com.example.administrator.myapplication;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;public class Second_Activity extends AppCompatActivity { private Button button ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second_); button = (Button) findViewById(R.id.button_2); button.setOnClickListener(new View.OnClickListener() { @Override// 按下按键的时候返回一个值给第一个界面 public void onClick(View v) { Intent intent = new Intent(); intent.putExtra("data_return", "Hello MainActivity"); setResult(RESULT_OK, intent); finish(); } }); }// 按下back键的时候返回一个值给第一个界面 public void onBackPressed(){ Intent intent = new Intent(); intent.putExtra("data_return", "Heloo MainActivity, me is back"); setResult(RESULT_OK, intent); finish(); }}
在activity_second中的代码是
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_second_" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.administrator.myapplication.Second_Activity"> <Button android:id="@+id/button_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button_Two"/></RelativeLayout>
这里的代码实现了从第二个界面传一个信息回到第一个界面,同时销毁第二个界面。
- onBackPressed的用法的文章
- onBackPressed()的用法
- android的super.onBackPressed()
- onBackPressed() 与 onKeyDown的区别
- android 开发 onBackPressed()方法的问题
- Android开发 返回键的复写 onBackPressed()
- Android开发 返回键的复写 onBackPressed()
- Android开发 返回键的复写 onBackPressed()
- Android 后退键onBackPressed()的使用介绍
- 返回键的复写onBackPressed()介绍
- 关于重载OnBackPressed无效的解决方案
- Android项目开发填坑记-Fragment的onBackPressed
- onBackPressed
- onBackPressed
- android中的后退键——onBackPressed()的使用
- android中的后退键——onBackPressed()的使用
- android中的后退键——onBackPressed()的使用
- android中的后退键——onBackPressed()的使用
- Mac下安装VirtualBox5.1并在VirtualBox中安装CentOS 7.3
- Levenshtein distance最小编辑距离算法实现
- 在maven本地仓库中添加oracle的jdbc驱动。
- 归并排序最直观的示意图
- javaScript类型转换
- onBackPressed的用法的文章
- C++第2次实验报告项目3:定期存款利息计算器
- MyEclipse 15中项目导入10中报错
- iOS 封装SDK
- CSS实现两列布局
- HBase简单使用
- [ERROR] InnoDB: Data file /data/mysql/3310/data/ibdata1 is of a different size 1536 pages
- 使用fifo实现一个服务器端多个客户端通信
- MyBatis03--Mapper XML映射文件