今天是我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>
好的。看到這裏是不是很簡單啊!其實,這個還是困擾了不少人地!謝謝