android 程序从后台跳到最顶层的界面

来源:互联网 发布:淘宝助理电脑 编辑:程序博客网 时间:2024/06/10 19:33
    今天是我2015年新年上班的第一天!再次祝大家新年快乐!节节高升!想想上班到现在,如今过年的氛围自己感觉远远没有小时候的鸡冻了!反而一想到上班,到是让我能够鸡冻快乐下的乐事之一了!    那么,今天我将给大家介绍一个小的知识点,就是当程序 从前台手动置为后台运行的时候,我们要通过各种操作方式,如点击桌面的程序运行图标,或者长按home键,以及第三方应用跳转到该程序的时候,我们有时候会经常发现,明明程序还在后台运行,我只是进行操作把它从后台置为前台而已,为什么会重新启动该程序呢?    其实,在这里我给大家一个解决方法:
package com.×××.×××;import java.util.List;import android.app.Activity;import android.app.ActivityManager;import android.app.ActivityManager.RunningTaskInfo;import android.content.Context;import android.content.Intent;import android.content.res.Configuration;import android.os.Bundle;/** * @类名:startActivity * @类描述:启动类 * @作者:Administrator * @创建时间:2015年2月25日-上午10:01:16 * @修改人:××× * @修改时间: * @修改备注: * @版本: */public class startActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        if (needStartApp()) {            /**如果需要重启,do something...**/            Intent i = new Intent(this, MainActivity.class);            startActivity(i);        }        finish();    }    @Override    public void onConfigurationChanged(Configuration newConfig) {        /** 当键盘显示与关闭,还有屏幕是横向和垂直切换时,我们在这里不做任何处理 **/        super.onConfigurationChanged(null);    }    /**     * @方法说明:检测是否需要重启app     * @方法名称:needStartApp     * @return     * @返回值:boolean     */    private boolean needStartApp() {        final ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);        final List<RunningTaskInfo> tasksInfo = am.getRunningTasks(1024);        if (!tasksInfo.isEmpty()) {            final String ourAppPackageName = getPackageName();            RunningTaskInfo taskInfo;            final int size = tasksInfo.size();            for (int i = 0; i < size; i++) {                taskInfo = tasksInfo.get(i);                if (ourAppPackageName.equals(taskInfo.baseActivity                        .getPackageName())) {                    /** continue application start only if there is the only                     * Activity in the task                     * (BTW in this case this is the StartupActivity)**/                    return taskInfo.numActivities == 1;                }            }        }        return true;    }}

接下来我们要在清单配置文件里面进行配置,默认启动程序入口从该类进入:

<activity android:name=".StartupActivity"      android:configChanges="orientation|keyboardHidden"      android:theme="@android:style/Theme.NoTitleBar.Fullscreen">      <intent-filter>          <action android:name="android.intent.action.MAIN" />          <category android:name="android.intent.category.LAUNCHER" />     </intent-filter></activity>

好的。看到这里是不是很简单啊!其实,这个还是困扰了不少人地!谢谢

0 0
原创粉丝点击