1. 场景:实现安装一个apk应用程序的过程。界面如下:

  1. 编写如下应用,应用结构如下:

<RelativeLayout   编写activity_main.xml布局:

<RelativeLayout 版本开始的

.setContentText("我是内容")

.setSmallIcon(R.drawable.notification)

.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher))

.build();

NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

nm.notify(0, noti);

}

}

Android清单文件:

<?xml         自杀代码:杀死进程的代码如下:

package com.itheima.exit;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.AlertDialog.Builder;

import android.content.DialogInterface;

import android.content.DialogInterface.OnClickListener;

import android.os.Bundle;

public class MainActivity extends Activity {

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

@Override

public void onBackPressed() {

AlertDialog.Builder builder = new Builder(this);

builder.setTitle("提醒");

builder.setMessage("确定退出当前应用程序吗?");

builder.setPositiveButton("立刻退出", new OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

finish();//关闭当前的activity

//把自己的进程杀死

//自杀的方法

android.os.Process.killProcess(android.os.Process.myPid());

}

});

builder.setNegativeButton("取消", null);

builder.show();

}

}

程序退出先的效果(在Devices中的效果):

退出后:

1 杀死进程,场景:杀死空进程,后台进程,他杀(也就是说杀不死自己),界面效果:

程序案例代码结构如下:

2 编写activity_main.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" >

<EditText

android:hint="请输入要杀死的进程包名"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:id="@+id/et_packname"/>

<Button

android:onClick="click"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:layout_centerVertical="true"

android:text="杀死进程"/>

</RelativeLayout>

3 MainActivity的代码如下:

package com.itheima.killother;

import android.app.Activity;

import android.app.ActivityManager;

import android.os.Bundle;

import android.view.View;

import android.widget.EditText;

public class MainActivity extends Activity {

private ActivityManager am;//相当于进程管理器

private EditText et_packname;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//所有程序的开启都是由Activity的ActivityManager来管理的

am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

et_packname = (EditText) findViewById(R.id.et_packname);

}

public void click(View view) {

String packname = et_packname.getText().toString().trim();

//注意要杀死别的进程需要加上权限

//<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>

//这里中方式只是杀死别人,注意:手机里面有些进程是杀死不掉的,比如电话进程

am.killBackgroundProcesses(packname);

}

}

程序运行结果:

注意:如果有时候提示要重启adb,可以通过下面的方式:

下面以杀死上面的com.android.music为例:

点击”杀死进程”前:

点击”杀死进程”之后的效果:

20_Android中apk安装器,通过WebView来load进一个页面,Android通知,程序退出自动杀死进程,通过输入包名的方式杀死进程的更多相关文章

  1. Android中APK安装过程及原理解析

    [原文] 来自华为内部资料 应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理操作.APK是Android Package的缩写,即android安装包 ...

  2. Android安装器学习笔记(一)

    Android安装器学习笔记(一) 一.Android应用的四种安装方式: 1.通过系统应用PackageInstaller.apk进行安装,安装过程中会让用户确认 2.系统程序安装:在开机的时候自动 ...

  3. springboot(五).如何在springboot项目中使用拦截器

    在每个项目中,拦截器都是我们经常会去使用的东西,基本上任一一个项目都缺不了拦截器的使用. 如日志记录.登录验证,session验证等,都需要拦截器来拦截URL请求,那springboot中的拦截器是如 ...

  4. 怎样用Android Studio打多包名APK

    问题:项目中不同的分发渠道可能须要打包多种APK(相同的代码),包名可能是不一样的,假设一个一个改动包名又一次编apk是非常麻烦,能够參考下列步骤在Android Studio上操纵Gradle来打包 ...

  5. Android系统加载Apk文件的时机和流程分析(1)--Android 4.4.4 r1的源码

    本文博客地址:https://blog.csdn.net/QQ1084283172/article/details/80982869 Android系统在启动时安装应用程序的过程,这些应用程序安装好之 ...

  6. 【Android Studio安装部署系列】二十七、Android studio修改项目名称和包名

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 实际项目开发中可能碰到项目名称写错了或者需要修改,而且包名可能也想要修改,那么如何操作呢. 本文是在Android Studio3. ...

  7. 在 Linux 中自动生成 Cordova/Phonegap for Android 的 APK 安装程序

    在 Linux 中自动生成 Cordova/Phonegap for Android 的 APK 安装程序 本贴首发于: http://xuekaiyuan.com/forum.php?mod=vie ...

  8. 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)

    众所周知,通过PackageManager可以获取手机端已安装的apk文件的信息,具体代码如下 PackageManager packageManager = this.getPackageManag ...

  9. Android 4.4(KitKat)中apk包的安装过程

    原文地址:http://blog.csdn.net/jinzhuojun/article/details/25542011 事实上对于apk包的安装.4.4和之前版本号没大的区别. Android中a ...

随机推荐

  1. C stat函数的用法举例(转载)

    stat函数讲解表头文件:    #include <sys/stat.h>             #include <unistd.h>定义函数:    int stat( ...

  2. 利用Filter和拦截器,将用户信息动态传入Request方法

    前言: 在开发当中,经常会验证用户登录状态和获取用户信息.如果每次都手动调用用户信息查询接口,会非常的繁琐,而且代码冗余.为了提高开发效率,因此就有了今天这篇文章. 思路: 用户请求我们的方法会携带一 ...

  3. [Java笔记]继承

    继承只是继承框架,而数据没有继承!. 继承不改变父类数据!

  4. PHP MySQL 插入数据

    PHP MySQL 插入数据 使用 MySQLi 和 PDO 向 MySQL 插入数据 在创建完数据库和表后,我们可以向表中添加数据. 以下为一些语法规则: PHP 中 SQL 查询语句必须使用引号 ...

  5. iOS开源照片浏览器框架SGPhotoBrowser的设计与实现

    简介 近日在制作一个开源加密相册时附带着设计了一个照片浏览器,在进一步优化后发布到了GitHub供大家使用,该框架虽然没有MWPhotoBrowser那么强大,但是使用起来更为方便,操作更符合常规相册 ...

  6. Linux下文件的mtime/atime/ctime研究

    概述 在Linux下,对于某一个文件或文件夹时间的描述有三种:文件修改时间mtime,文件访问时间atime,文件状态改变时间ctime.在Linux下无法获取到文件的创建时间,因为根本就没有保存这个 ...

  7. Swift中的"可溢出"算术运算符

    大家知道Swift中拥有和C,Objc类似的算术运算符,它们分别是: + - * / % 但是你可能不知道这些Swift中的运算符和C,Objc语言中的有一个很大的不同之处,就是它们不可以被" ...

  8. linux找不到动态链接库 .so文件的解决方法(转自:http://www.cnblogs.com/xudong-bupt/p/3698294.html)

    linux找不到动态链接库 .so文件的解决方法 如果使用自己手动生成的动态链接库.so文件,但是这个.so文件,没有加入库文件搜索路劲中,程序运行时可能会出现找不到动态链接库的情形. 可以通过ldd ...

  9. ROS机器人程序设计(原书第2版)补充资料 教学大纲

    ROS机器人程序设计(原书第2版) 补充资料 教学大纲 针对该书稍后会补充教学大纲.教案.多媒体课件以及练习题等. <ROS机器人程序设计>课程简介 课程编号:XXXXXX 课程名称:RO ...

  10. Java实现内部类

    内部类是java中非常方便的一种机制,内部类所在的类称为宿主类,即内部类只能被它的宿主类使用,用这个特性,可以很好的控制类的可见性. 接下来看一个例子: package for_apro; impor ...