Android按键响应的几种方式、安卓页面的跳转、页面跳转传参、页面自动跳转、Activity(页面)的生命周期

按键响应的第一种方式:

  • 在XML文件里面设置按键的onClick绑定函数。就像下面的代码,给Button设置onClick属性,在按键被按下的时候,会调用java文件里面的onClickbtton1这个函数,因为现已将它和这个按钮进行了绑定。利用布局文件中的onClick属性,并在实现文件中实现该方法。注意的是这里的方法名应该和布局文件中onClick属性的方法名相同,该方法必须是public方法。
    <Buttonandroid:id="@+id/btn1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="onClickbtton1"android:text="按键一"/>
  • 下面是两个通过两个按键来调用绑定的函数的XML代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity" ><Buttonandroid:id="@+id/btn1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="onClickbtton1"android:text="按键一"/><Buttonandroid:id="@+id/btn2"android:layout_alignParentRight="true"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="onClickbtton1"android:text="按键二"/>
</RelativeLayout>
  • java代码:
package com.fhn.buttonresponse;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void onClickbtton1(View v) //这个函数的权限必须是public,否则会找不到这个函数{int id=v.getId();  //通过getId()来获取当前对象的ID,v表示函数的调用者//按键一按下V就表示按键一,按键二被按下V就表示按键二,通过getId可以获取他们的IDswitch(id){case R.id.btn1:System.out.println("按键一被按下");System.out.println(id);Toast.makeText(this, "按键一",0).show(); //this指代当前类,按键一指示要显示的内容,第三个参数表示要显示的时长0表示默认时长,这个就是在安卓APP上显示的信息//makeText是一个构造方法,它最终会产生一个对象,通过.show来调用对象的方法break;case R.id.btn2:System.out.println("按键二被按下");System.out.println(id);Toast.makeText(this, "按键二", 0).show();break;default: break;}		}
}

按键响应的第二种方式:

关于监听器:监听器是一个存在于View类下的接口,一般以On**Llistener命名,实现该接口需要复写相应的on(View v)方法(如onClick(View v))。Android提供的基于事件监听接口有OnClickListener、OnLongClickListener、OnFocusChangeListener、OnKeyListener、OnTouchListener、OnCreateContextMenuListener等。

  • OnClickListener接口:该接口处理的是点击事件。在触摸模式下,是在某个View上按下并抬起的组合动作,而在键盘模式下,是某个View获得焦点后点击确定键或者按下轨迹球事件。
  • OnLongClickListener接口: OnLongClickListener接口与上述的OnClickListener接口原理基本相同,只是该接口为View长按事件的捕捉接口,即当长时间按下某个View时触发的事件。
  • OnFocusChangeListener接口:OnFocusChangeListener接口用来处理控件焦点发生改变的事件。如果注册了该接口,当某个控件失去焦点或者获得焦点时都会触发该接口中的回调方法。
  • OnKeyListener接口:是对手机键盘进行监听的接口,通过对某个View注册并监听,当View获得焦点并有键盘事件时,便会触发该接口中的回调方法。
  • OnTouchListener接口:是用来处理手机屏幕事件的监听接口,当为View的范围内触摸按下、抬起或滑动等动作时都会触发该事件。
  • OnCreateContextMenuListener接口:是用来处理上下文菜单显示事件的监听接口。该方法是定义和注册上下文菜单的另一种方式。

实现监听的两种方法:

方法一:在Activity中定义一个内部类继承监听器接口(这里是OnClickListener)。常见的继承方法如下:

class MyListener implements View.OnClickListener{@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this,"you have clicked Button2",Toast.LENGTH_SHORT).show();}

OnClickListener接口的使用(XML文件只需要为控件设置ID即可,不用绑定函数,需要在java文件中将XML文件中的按键和java代码通过findViewById关联起来):

package com.fhn.buttonresponse;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;首先应该实现接口类,再类中实现onClick方法,实现业务代码。class Myclick implements View.OnClickListener  //继承View的OnClickListener这个方法
{@Overridepublic void onClick(View v) {int id=v.getId();switch(id){case R.id.btn1:System.out.println("按键一被按下");System.out.println(id);//Toast.makeText(this, "按键一",0).show(); //this指代当前类,按键一指示要显示的内容,第三个参数表示要显示的时长0表示默认时长//makeText是一个构造方法,它最终会产生一个对象,通过.show来调用对象的方法break;case R.id.btn2:System.out.println("按键二被按下");System.out.println(id);//Toast.makeText(this, "按键二", 0).show();break;default: break;}		}
}
public class MainActivity extends Activity {Button btu1;Button btu2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btu1 =(Button)findViewById(R.id.btn1);//将java文件里面的btu1和XML文件里面的btn1相关联btu2 =(Button)findViewById(R.id.btn2);//将java文件里面的btu2和XML文件里面的btn2相关联btu1.setOnClickListener(new Myclick());btu2.setOnClickListener(new Myclick());}
}

方法二:实现匿名内部类。这种方法适合只希望对监听器进行一次性使用的情况,在该代码块运行完毕之后,该监听器也就不复存在了。

bt1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this,"you have clicked Button1",Toast.LENGTH_SHORT).show();}});

使用匿名内部类的方式创建监听器:

package com.fhn.buttonresponse;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends Activity {Button btu1;Button btu2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btu1 =(Button)findViewById(R.id.btn1);//将java文件里面的btu1和XML文件里面的btn1相关联btu2 =(Button)findViewById(R.id.btn2);//将java文件里面的btu2和XML文件里面的btn2相关联btu1.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v) {  //new View.OnClickListener(){}相当于new了一个匿名内部类,然后还要实现内部类的接口onClick// TODO Auto-generated method stubSystem.out.println("按键一被按下");System.out.println(v.getId());Toast.makeText(MainActivity.this, "按键一", 0).show();}	});btu2.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubSystem.out.println("按键二被按下");System.out.println(v.getId());Toast.makeText(MainActivity.this, "按键二", 0).show();}});}
}

按键响应第三种方式(为整个Activity设置监听器):

package com.fhn.buttonresponse;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;public class MainActivity extends Activity implements View.OnClickListener { //MainActivity继承View.OnClickListener//这个接口,说明这个页面具有监听按键的功能Button btu1;Button btu2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btu1 =(Button)findViewById(R.id.btn1);//将java文件里面的btu1和XML文件里面的btn1相关联btu2 =(Button)findViewById(R.id.btn2);//将java文件里面的btu2和XML文件里面的btn2相关联btu1.setOnClickListener(this); //将MainActivity这个类有的按键监听到功能设置给btu1btu2.setOnClickListener(this);//将MainActivity这个类有的按键监听到功能设置给btu2}@Overridepublic void onClick(View v) { //按键被按下后执行这个函数int id=v.getId();switch(id){case R.id.btn1:System.out.println("按键一被按下");System.out.println(id);Toast.makeText(this, "按键一",0).show(); //this指代当前类,按键一指示要显示的内容,第三个参数表示要显示的时长0表示默认时长//makeText是一个构造方法,它最终会产生一个对象,通过.show来调用对象的方法break;case R.id.btn2:System.out.println("按键二被按下");System.out.println(id);Toast.makeText(this, "按键二", 0).show();break;default: break;}				}
}

安卓页面的跳转:

  • 为安卓添加一个新的界面,新建完成后可以看到Manifest.xml下面会新注册一个界面。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

页面跳转(可以通过绑定函数加Intent实现):

就是在绑定函数里面添加Intent,新建Intent对象然后设置上下文(当前界面)和将要跳转界面的类。然后使用startActivity方法实现跳转。

  • 第一个界面的JAVA代码:
package com.fhn.jump;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void goSecond(View v) {//intent去声明要跳转的界面Intent intent=new Intent(this,SecondMainActivity.class);//这个构造方法,第一个参数就是上下文(当前页面)的意思,这里this就是指代MainActivity//第二个参数就是目标页面的类startActivity(intent); //用startActivity去跳转页面}
}
  • 第二个文件的JAVA代码:
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
public class SecondMainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_second_main);}public void gothird(View v){Intent intent=new Intent(this,ThirdMainActivity.class);//这个构造方法,第一个参数就是上下文(当前页面)的意思,这里this就是指代MainActivity//第二个参数就是目标页面的类//用startActivity去跳转页面startActivity(intent);}
}
  • 第三个界面的JAVA代码:
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;public class ThirdMainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_third_main);}public void gofirst(View v){Intent intent=new Intent(this,MainActivity.class);//这个构造方法,第一个参数就是上下文(当前页面)的意思,这里this就是指代MainActivity//第二个参数就是目标页面的类//用startActivity去跳转页面startActivity(intent);	}
}

以整个Activity监听的方式实现界面跳转(以下代码能够实现由界面1到2,2到3,3到1):

  • 第一个界面代码:
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;public class MainActivity extends Activity implements View.OnClickListener{Button btu1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btu1=(Button)findViewById(R.id.btn1);btu1.setOnClickListener(this);}@Overridepublic void onClick(View arg0) {Intent intent=new Intent(this,SecondMainActivity.class);//这个构造方法,第一个参数就是上下文(当前页面)的意思,这里this就是指代MainActivity//第二个参数就是目标页面的类//用startActivity去跳转页面startActivity(intent);}
}
  • 第二个界面代码:
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class SecondMainActivity extends Activity implements View.OnClickListener {Button btu1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_second_main);btu1=(Button)findViewById(R.id.btn2);btu1.setOnClickListener(this);}public void onClick(View arg0) {Intent intent=new Intent(this,ThirdMainActivity.class);//这个构造方法,第一个参数就是上下文(当前页面)的意思,这里this就是指代MainActivity//第二个参数就是目标页面的类//用startActivity去跳转页面startActivity(intent);}
}
  • 第三个界面代码:
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class ThirdMainActivity extends Activity  implements View.OnClickListener {Button btu;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_third_main);btu=(Button)findViewById(R.id.btn3);btu.setOnClickListener(this);}public void onClick(View arg0) {Intent intent=new Intent(this,MainActivity.class);//这个构造方法,第一个参数就是上下文(当前页面)的意思,这里this就是指代MainActivity//第二个参数就是目标页面的类//用startActivity去跳转页面startActivity(intent);}
}

页面跳转如何传参(整型或者字符串——putExtra):

第一个界面向第二个界面传参(整数1),第二个界面向第三个界面传参(字符串sting),第三个界面向第一个界面传参(字符串string2)

  • MainActivity的代码(第一个界面):
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;public class MainActivity extends Activity {Button btu1;private String data2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Intent i=this.getIntent();//获取当前界面的Intentdata2=i.getStringExtra("Mydata");Toast.makeText(this,data2, Toast.LENGTH_LONG).show();}public void goSecond(View v) {//intent去声明要跳转的界面Intent intent=new Intent(this,SecondMainActivity.class);//这个构造方法,第一个参数就是上下文(当前页面)的意思,这里this就是指代MainActivity//第二个参数就是目标页面的类intent.putExtra("Mydata", 1);//putExtra参数是键值对的方式,这里就表示Mydata=1startActivity(intent);       //用startActivity去跳转页面}
}
  • SecondActivity文件代码:
package com.fhn.jump;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;public class SecondMainActivity extends Activity {private int data1;private String data2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_second_main);Intent i=this.getIntent();//获取当前界面的Intent
//		data2=i.getStringExtra("Mydata");
//		Toast.makeText(this,data2, Toast.LENGTH_LONG).show();data1 =i.getIntExtra("Mydata",0);System.out.println(data1);Toast.makeText(this,String.valueOf(data1), Toast.LENGTH_LONG).show();}public void gothird(View v){Intent intent=new Intent(this,ThirdMainActivity.class);//这个构造方法,第一个参数就是上下文(当前页面)的意思,这里this就是指代MainActivity//第二个参数就是目标页面的类intent.putExtra("Mydata","string");//putExtra参数是键值对的方式,这里就表示Mydata=1//用startActivity去跳转页面startActivity(intent);}
}
  • ThirdActivity文件代码:
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;
public class ThirdMainActivity extends Activity {private String data2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_third_main);Intent i=this.getIntent();//获取当前界面的Intentdata2=i.getStringExtra("Mydata");Toast.makeText(this,data2, Toast.LENGTH_LONG).show();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.third_main, menu);return true;}public void gofirst(View v){Intent intent=new Intent(this,MainActivity.class);//这个构造方法,第一个参数就是上下文(当前页面)的意思,这里this就是指代MainActivity//第二个参数就是目标页面的类intent.putExtra("Mydata","string2");//putExtra参数是键值对的方式,这里就表示Mydata=1//用startActivity去跳转页面startActivity(intent);	}
}

使用Bundle的方式实现界面的数据传输:

  • MainActivity文件代码:
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends Activity {Button btu1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void goSecond(View v) {//intent去声明要跳转的界面Intent intent=new Intent(this,SecondMainActivity.class);//这个构造方法,第一个参数就是上下文(当前页面)的意思,这里this就是指代MainActivity//第二个参数就是目标页面的类Bundle bundle1=new Bundle();//新建一个bundle对象bundle1.putChar("char", 'a'); //传一个字符bundle1.putString("string", "string");//传字符串intent.putExtras(bundle1);//将bundle1进行传输startActivity(intent);//用startActivity去跳转页面}
}
  • SecondActivity文件代码:
package com.fhn.jump;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;public class SecondMainActivity extends Activity {char a;String d;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_second_main);Intent i=this.getIntent(); //获取当前界面的IntentBundle b=i.getExtras();  //新建Bundle对象,来获取大量数据a=b.getChar("char");      //获得字符d=b.getString("string");  //获得字符串Toast.makeText(this,Character.toString(a),0).show();Toast.makeText(this,d,0).show();}public void gothird(View v){Intent intent=new Intent(this,ThirdMainActivity.class);//这个构造方法,第一个参数就是上下文(当前页面)的意思,这里this就是指代MainActivity//第二个参数就是目标页面的类//用startActivity去跳转页面startActivity(intent);}
}

安卓界面实现自动跳转:

当使用Thread.sleep();这个线程延时函数的时候,会出现第一个界面无法显示的问题,因为在一个APP启动的时候会有一个主要的UI线程,而这个sleep实在当前的UI线程去做了阻塞的,UI显示会不断的刷新屏幕界面,而这时候sleep就是在刷新屏幕界面的时候阻塞,所以会造成界面出不来(无法看到界面的任何字符)。既然要实现界面的自动跳转就一定要用到sleep但是不能在当前线程,要在一个新的线程里面去sleep,启动另外一个线程,在新的线程里面sleep后显示一个新的界面。

使用java开辟线程:Thread t=new Thread();   //实例化了一个线程,但是没有启动线程
t.start();               //这时候才启动了线程但是这样并不知道你要在新的线程里面干什么,所以要要实例化的时候,添加参数:Thread t=new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stub}});
Runnable是一个接口,你需要重写里面的run方法(run方法里面就是写的你真正要干的工作)
  • 实现运行APP3S后从第一界面跳转到第二界面
package com.fhn.jump;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Thread t = new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep(3000);  //3000毫秒} catch (InterruptedException e) { // 这里有一个异常处理// TODO Auto-generated catch blocke.printStackTrace();}// intent去声明要跳转的界面Intent intent = new Intent(MainActivity.this, SecondMainActivity.class);// 这个构造方法,第一个参数就是上下文(当前页面)的意思,这里this就是指代MainActivity// 第二个参数就是目标页面的类startActivity(intent);// 用startActivity去跳转页面}});t.start();  //启动线程去执行run里面的内容}public void goSecond(View v) {//intent去声明要跳转的界面Intent intent=new Intent(this,SecondMainActivity.class);//这个构造方法,第一个参数就是上下文(当前页面)的意思,这里this就是指代MainActivity//第二个参数就是目标页面的类startActivity(intent); //用startActivity去跳转页面}
}

Activity的生命周期:

相信不少朋友也已经看过这个流程图了,也基本了解了Activity生命周期的几个过程,我们就来说一说这几个过程。
在这里插入图片描述

  • 启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
  • 当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
  • 当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
  • 当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
  • 用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
  • 当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
  • 用户退出当前Activity,系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pycharm体验

查看python版本 退出 exit()

Linux文本检索命令grep笔记

grep是在linux系统中基于行文本非常实用检索工具&#xff0c;通过该命令可以将匹配到的结果信息输出到终端控制台。语法格式&#xff1a;grep [-ivnc] 需要匹配的内容 文件名常用参数说明&#xff1a;-i 检索的时候不区分大小写-c 检索到的匹配行数-n 检索到的匹配行显式具体的…

成立出版社的条件_创始人亲述:法国鸿飞文化出版社的诞生故事和做书心得

鸿飞文化出版社2007年在法国创立&#xff0c;专门出版由中国作家和法国插画师共同创作的图画书。创始人叶俊良引用苏东坡的诗句“人生到处知何似&#xff0c;应似飞鸿踏雪泥。泥上偶然留指爪&#xff0c;鸿飞那复计东西。”为出版社取名&#xff0c;希望通过这些“印迹”为读者…

python单行注释和多行注释

# 后面加一个空格&#xff0c;下面就不会有波浪线了 点击小灯泡下的第一行&#xff0c;可以调整注释格式 多行注释

Linux文件查询笔记

1、数据库查找命令&#xff1a;locateLinux也可以通过locate命令查找文件&#xff0c;locate命令主要是依据一个数据库文件来执行文件的查找&#xff0c;默认情况下Linux每天会默认检索系统中的所有文件&#xff0c;然后把检索的文件信息记录到数据库文件中。因为运行locate命令…

柱坐标系下的ns方程_麦克斯韦方程组小结

一、▽ 算子、点积、叉积l▽ 算子叫“del”算子&#xff0c;即<< span"">∂/∂x,∂/∂y,∂/∂z>,可以理解为一个符号向量&#xff0c;向量里的元素是偏微分运算符号&#xff0c;没有任何具体意义&#xff0c;只是一个表示方法。ln维向量的内积定义如下&a…

Linux进程终止命令kill或killall​笔记

在linux命令下&#xff0c;如果需要终止某个进程&#xff0c;可以使用kill或者killall等命令来实现。终止命令的原理都是向linux内核发送一个系统操作的信号以及某个进程的ID&#xff0c;然后系统内核会根据指定的进程ID进行相应的处理。kill命令典型的用法&#xff1a;首先使用…

Visual Studio的调试技巧

Visual Studio的调试技巧 【原文地址】 Debugging Tips with Visual Studio 2010 【原文发表日期】 2010/8/19 10:48 AM 这是我写的关于VS2010和.Net4发布的博客系列的第26篇。 今天的博文包含了一些有用的能用于VS的调试技巧。 我的朋友 Scott Cate&#xff08;他写了很多很…

Linux排序命令sort笔记

很多时候Linux需要对文本相对比较规范的文本数据进行排序&#xff0c;这时候可以使用Linux系统下的sort命令进行处理。语法格式&#xff1a;sort [-ntkr] filename常用参数&#xff1a;-n 根据数字进行排序-t 指定的分隔符-k 指定分隔符的第几列-r 降序排序用法示例&#xff1a…

redirect路由配置 vue_Web前端:Vue路由进阶配置

大家好&#xff0c;我来了&#xff0c;本期为大家带来的前端开发知识是”Web前端&#xff1a;Vue路由进阶配置“&#xff0c;有兴趣做前端的朋友&#xff0c;和我一起来看看吧&#xff01;1. 页面打开权限流程页面是否能打开有以下两点判断&#xff1a;1. 判断是否增加登陆的判…

python格式化输出

格式化输出字符串 格式化输出整数 格式化输出浮点数 输出&

Linux常用内建命令笔记

Linux系统为了便于运维人员对系统的操作&#xff0c;所以内建了很多shell命令。一般来说linux系统的内建命令会比执行外部的shell命令执行更快。因为执行内建命令相当于调用当前shell进程里面的函数&#xff0c;而执行外部命令的话需要出发IO操作还要fork一个单独的进程来执行&…

asp手机拍照显示_会员动态飞凯材料120吨TFTLCD混合液晶显示项目,建后五年达产...

来源 &#xff1a;全景网10月26日&#xff0c;在飞凯材料可转债发行网上路演会议上&#xff0c;该公司相关人员也对投资者关心的问题进行解答。关于发行8.25亿元可转换债券&#xff0c;飞凯材料表示本次募集资金扣除发行费用后将用于投资以下项目&#xff1a;10000t/a紫外固化光…

python中变量的命名和关键字和变量的命名规则

[False, None, True, and, as, assert, break, class, continue, def, del, elif, else, except, finally, for, from, global, if, import, in, is, lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield]

Linux中Shell数组的笔记

Shell数组的介绍数组算是一种特殊的数据结构&#xff0c;数据项可以成为数组的元素&#xff0c;可以通过数组的索引获取每一个数组的元素值。数组的典型的使用场景是把相同类型的元素汇总在一起。由于Shell变量属于弱类型&#xff0c;所以数组里面的元素并不一定是相同类型。注…

linux中php配置

安装nginxphp好久了&#xff0c;今天意外的搭建好了&#xff0c;分享给大家 &#xff0c;以免以后多走弯路。 nginx已经前面安装好了&#xff0c;现在就开始配置php 安装php 分为两个部分 &#xff1a;一部分是php源码&#xff0c;另外是fastcgi管理进程&#xff1a;php-fpm 庆…

log函数 oracle power_Excel之数学函数SQRT/MOD/EXP/LN/RAND

本部分主要包括ABS函数、SQRT函数、SIGN函数、MOD函数、POWER、EXP函数、LN函数、LOG函数、LOG10函数、RAND函数、RANDBETWEEN函数、PI函数、SIN函数、COS函数、TAN函数、PRODUCT函数、FACT函数、GCD函数、LCM函数、DEGREES函数、RADIANS函数和SUBTOTAL函数共22个。需重点掌握S…