【移動應(yīng)用開發(fā)技術(shù)】Android 中怎么實(shí)現(xiàn)全局一個(gè)Dialog_第1頁
【移動應(yīng)用開發(fā)技術(shù)】Android 中怎么實(shí)現(xiàn)全局一個(gè)Dialog_第2頁
【移動應(yīng)用開發(fā)技術(shù)】Android 中怎么實(shí)現(xiàn)全局一個(gè)Dialog_第3頁
【移動應(yīng)用開發(fā)技術(shù)】Android 中怎么實(shí)現(xiàn)全局一個(gè)Dialog_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

【移動應(yīng)用開發(fā)技術(shù)】Android中怎么實(shí)現(xiàn)全局一個(gè)Dialog

Android中怎么實(shí)現(xiàn)全局一個(gè)Dialog,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。分析:想要實(shí)現(xiàn)無論當(dāng)前應(yīng)用是處于哪一個(gè)頁面上,都能夠及時(shí)彈出Dialog功能其實(shí)很簡單,只要能獲取到當(dāng)前顯示的Activity就行了,也就是棧頂?shù)腁ctivity。實(shí)現(xiàn)過程:一般項(xiàng)目中我們都會通過一個(gè)類來管理我們的Activity,即AppManager/**

*

Activity管理類

*

@author

Donkor

*/

public

class

AppManager

{

private

static

Stack<Activity>

activityStack;

private

static

AppManager

instance;

private

AppManager(){}

/**

*

單一實(shí)例

*/

public

static

AppManager

getAppManager(){

if(instance==null){

instance=new

AppManager();

}

return

instance;

}

/**

*

添加Activity到堆棧

*/

public

void

addActivity(Activity

activity){

if(activityStack==null){

activityStack=new

Stack<Activity>();

}

activityStack.add(activity);

}

/**

*

獲取當(dāng)前Activity(堆棧中最后一個(gè)壓入的)

*/

public

Activity

currentActivity(){

Activity

activity=activityStack.lastElement();

return

activity;

}

/**

*

結(jié)束當(dāng)前Activity(堆棧中最后一個(gè)壓入的)

*/

public

void

finishActivity(){

Activity

activity=activityStack.lastElement();

if(activity!=null){

activity.finish();

activity=null;

}

}

/**

*

結(jié)束指定的Activity

*/

public

void

finishActivity(Activity

activity){

if(activity!=null){

activityStack.remove(activity);

activity.finish();

activity=null;

}

}

/**

*

結(jié)束指定類名的Activity

*/

public

void

finishActivity(Class<?>

cls){

for

(Activity

activity

:

activityStack)

{

if(activity.getClass().equals(cls)

){

finishActivity(activity);

}

}

}

/**

*

結(jié)束所有Activity

*/

public

void

finishAllActivity(){

for

(int

i

=

0,

size

=

activityStack.size();

i

<

size;

i++){

if

(null

!=

activityStack.get(i)){

activityStack.get(i).finish();

}

}

activityStack.clear();

}

/**

*

退出應(yīng)用程序

*/

public

void

AppExit(Context

context)

{

try

{

finishAllActivity();

ActivityManager

activityMgr=

(ActivityManager)

context.getSystemService(Context.ACTIVITY_SERVICE);

activityMgr.restartPackage(context.getPackageName());

System.exit(0);

}

catch

(Exception

e)

{

e.printStackTrace();

}

}

}再封裝一個(gè)BaseActivity類統(tǒng)一管理,給各個(gè)Activity繼承/**

*

Activity基類

*

@author

Donkor

*/

public

abstract

class

BaseActivity

extends

AppCompatActivity

{

@Override

protected

void

onCreate(@Nullable

Bundle

savedInstanceState)

{

super.onCreate(savedInstanceState);

//將Activity實(shí)例添加到AppManager的堆棧

AppManager.getAppManager().addActivity(this);

}

@Override

protected

void

onDestroy()

{

super.onDestroy();

//將Activity實(shí)例從AppManager的堆棧中移除

AppManager.getAppManager().finishActivity(this);

}

}最后需要MainActivity(主頁面、主類)或者Service中處理Dialog的顯示問題

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論