十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
闪退,多指在移动设备(如iOS、Android设备)中,在打开应用程序时出现的突然退出中断的情况(类似于Windows的应用程序崩溃)。多表现为:应用程序画面一闪而过,随即退回到桌面。
创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为原平企业提供专业的网站建设、成都网站设计,原平网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
闪退的原因和处理方法
1、缓存垃圾过多
平时在使用软件的过程中,会产生一些垃圾文件,如果长时间不清理会导致手机越来越卡,也会出现闪退状况。
进入设置–应用程序——全部——找到有问题的应用程序,清除数据或者缓存。(注:清除数据,会清除掉应用的个人设置、账户信息等。)
2、运行程序过多
如果不进行设置,很多软件都会自己运行,而手机后台程序过多会造成内存不足,从而造成应用闪退。如出现软件闪退,可先清理内存后再试试。
3、手机杀毒软件
部分手机软件存在着恶意代码,会被杀毒软件拦截因而不能正常进入,应该通过绿色下载平台或者使用软件商店来下载安全系数较高的游戏。
(注:以上三个原因都现在都可以通过安全软件清理,轻松解决。但需要注意在删除一些大型文件时请谨慎。)
4、应用版本问题
如果应用的版本较低,会导致应用软件不兼容,造成闪退。如果是版本太旧,更新为新版本即可。
如新版本如果出现闪退,是应用改版本还在调试中,无需担心,会很快修复。
5、网速问题
部分软件需要一个稳定的网络,使用的是2G/3G网络,造成闪退的可能性比较大,建议在有WiFi的情况下玩比较好。
6、缺少数据包
一些大型游戏需要数据包才能运行。所以要先安装好数据包才能使用。
7、系统不兼容
部分软件对版本有一定的要求,如果系统版本过低,软件是不能支持的,所以会闪退。
8、分辨率不兼容
一些软件对手机分辨率有一定的要求,如果手机分辨率不兼容,有部分软件就容易出现闪退或其它错误。
Android Studio中,随时随地的退出程序(记得导入相应的包,可以设置自动导入所需的包的,下面的代码还没有导入包的部分):
①新建一个 ActivityCollector 类,作为活动管理器,代码如下所示:
public class ActivityCollector {
public static ListActivity activities = new ArrayList();
public static void addActivity(Activity activity) {
activities.add(activity);
}
public static void removeActivity(Activity activity) {
activities.remove(activity);
}
public static void finishAll() {
for (Activity activity : activities)
{
if(!activity.isFinishing())
{
activity.finish();
}
}
activities.clear();
//以下是杀死当前程序进程的代码,保证程序彻底退出。
android.os.Process.killProcess(android.os.Process.myPid());
}
}
②再新建一个类BaseActivity,并让所有活动继承这个类,也就是其他的全部活动都改为extends BaseActivity,而不是原来的extends AppCompatActivity。
public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("BaseActivity", getClass().getClass().getSimpleName());
ActivityCollector.addActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
ActivityCollector.removeActivity(this);
}
}
③在你想要退出程序的页面(Activity)的setContentView(R.layout.*****); 下面加上如下代码,从而实现点击一个按钮退出整个程序。
Button button3 = (Button) findViewById(R.id.*****);
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ActivityCollector.finishAll();
}
});
//*号部分看具体情况而定
大家都知道 Android 的 Activity 是存着历史栈的,比如从 A - B - C,C 完成 finish 后回到 B,把所有的Activity 都 finish了,程序就自然退出了。 当然在 finish 的同时也需要是否自己程序的其他资源。所以需要想个办法把 Activity 给存起来。然后在程序退出的地方调用它们的 finish()方法。
使用全局变量。对了,第一个想到的就是继承 Application,代码入下。
public class AgentApplication extends Application { private ListActivity activities = new ArrayListActivity(); public void addActivity(Activity activity) {activities.add(activity);} @Overridepublic void onTerminate() {super.onTerminate();for (Activity activity : activities) {activity.finish();}onDestroy();System.exit(0);}}
然后在 Activity onCreate 的时候来调用 addActivity (),有人可能想到这个Application需要在所有的 Activity onCreate的时候都使用,需要做一个单例实例。其实根本不需要。在 Activity 中使用 this.getApplication() 就可以了。
最后在你需要推出程序的地方调用 application.onTerminate() 就可以了。记住:super.onTerminate() 必须调用,代码中的 onDestroy()是我自己的释放其他资源的方法,不是系统的。
运行以上代码后,在LogCat 中会出现一行提示:
Process 包名 (pid xxxxx) has died. 证明你的程序退出了。现在你可以测试了。
安卓系统退出后台程序方法步骤如下: 1、长按手机的长按HOME键,也就是手机屏幕下中间的那个按键,这时就会手机出现手机的任务管理器,可以选择要关闭的程序将它拖到《垃圾箱》中这样就关闭了应用程序,也可以点击《全部移除》这样所有运行软件就全部结束了。或者,打开手机中的《设定》点击《更多》找到任务管理器。进入任务管理器后《点击》要关闭的程序,点击《强制停止》再《确定》。这样要关闭的应用程序就结束了。 2、可以用360手机卫士、安卓优化大师和腾讯手机管家等工具
若使用的是vivo手机,可以从屏幕底部中间往上滑后停顿调出后台应用(部分机型需点击左键),按住软件图标上滑,即可关闭后台运行的应用。
如果按返回键(或者全面屏手势中的左右侧边缘向内滑)无反应,可以考虑按菜单键(或者全面屏手势中的底部向上滑动并停顿),切换到应用进程总览界面,然后按“x”或者向侧面滑动那一个APP的小窗口,强制关闭那一个APP进程。