當前位置:首頁 » 安卓系統 » android當前activity

android當前activity

發布時間: 2022-05-02 19:35:30

① android 如何判斷當前是哪個activity

當前的Activity只會有一個的
首先要知道Activity的四種狀態:
Active/Runing 一個新 Activity 啟動入棧後,它在屏幕最前端,處於棧的最頂端,此時它處於可見並可和用戶交互的激活狀態。
Paused 當 Activity 被另一個透明或者 Dialog 樣式的 Activity 覆蓋時的狀態。此時它依然與窗口管理器保持連接,系統繼續維護其內部狀態,所以它仍然可見,但它已經失去了焦點故不可與用戶交互。
Stoped 當 Activity 被另外一個 Activity 覆蓋、失去焦點並不可見時處於 Stoped 狀態。
Killed Activity 被系統殺死回收或者沒有被啟動時處於 Killed 狀態。

protected void onStart() 該方法在 onCreate() 方法之後被調用,或者在 Activity 從 Stop 狀態轉換為 Active 狀態時被調用,一般執行了onStart()後就執行onResume()。
protected void onResume() 在 Activity 從 Pause 狀態轉換到 Active 狀態時被調用。

② android 返回鍵 關閉當前activity

重寫ONKEYDOWN方法
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// Do something.
this.finish();//直接調用殺死當前activity方法.
return true;
}
return super.onKeyDown(keyCode, event);
}
我自己再嘗試了一遍, 在多個activity之間用finish()還是沒辦法直接殺死程序
後面查閱了資料,在2.1之前可以使用ActivityManager的restartPackage方法。
它可以直接結束整個應用。在使用時需要許可權android.permission.RESTART_PACKAGES。
在2.2添加了一個新的方法,killBackgroundProcesses(),需要許可權android.permission.KILL_BACKGROUND_PROCESSES。
可惜的是,它和2.2的restartPackage一樣,根本起不到應有的效果。
另外還有一個方法,就是系統自帶的應用程序管理里,強制結束程序的方法,forceStopPackage()。
它需要許可權android.permission.FORCE_STOP_PACKAGES。
並且需要添加android:sharedUserId="android.uid.system"屬性
同樣可惜的是,該方法是非公開的,他只能運行在系統進程,第三方程序無法調用。
所以只能用
Intent intent = new Intent();
intent.setClass(this, 主Activity的類);
startActivity(intent);
this.finish();

③ Android中判斷當前處於哪個Activity

在每個activity中的onresume方法添加如下方法,就可以實現當前處於的是哪個activity:

java">@Override
protectedvoidonResume(){
super.onResume();
AppContext.getInstance().setCurrentActivity(this);
}

@Override
protectedvoidonPause(){
AppContext.getInstance().setCurrentActivity(null);
super.onPause();
}
@Override
publicvoidonDestroy(){
AppContext.getInstance().setCurrentActivity(null);
super.onDestroy();
}
然後在自己的app中:
importandroid.app.Activity;
importandroid.app.Application;

{
privateApplicationparentApp;
privateActivitycurActivity;

(){
returnparentApp;
}
privatestaticclassLazyHolder{
staticAppContextinstance=newAppContext();
}
(){
returnLazyHolder.instance;
}
@Override
publicbooleanStart(Map<String,Object>args){
Objectparam=args.get(appContext);
if(paraminstanceofApplication){
parentApp=(Application)param;
returntrue;
}
returnfalse;
}
@Override
publicvoidStop(Map<String,Object>args){

}

publicvoidsetCurrentActivity(ActivitycurActivity){
this.curActivity=curActivity;
}

(){
returnthis.curActivity;
}

(){
booleanisInAdapterActivity=false;
if(null!=curActivity){
if(){
isInAdapterActivity=true;
}
}
returnisInAdapterActivity;
}

publicbooleanisInScanActivity(){
booleanisInScanActivity=false;
if(null!=curActivity){
if(){
isInScanActivity=true;
}
}
returnisInScanActivity;
}
publicbooleanisInMainActivity(){
booleanisInMainActivity=false;
if(null!=curActivity){
if(){
isInMainActivity=true;
}
}
returnisInMainActivity;
}
}
然後在對應各個Activity:
if(AppContext.getInstance().isInMainActivity()){
//dosth.
}

④ 如何用adb shell 指令獲得android當前的activity

(1)用「adb
shell
mpsys
activity」命令可以查看
(2)另外,用"adb
logcat
|
grep
ActivityManager",也可以查看當前正在運行的Activity

⑤ android 如何獲取手機當前的Activity實例

獲取activity實例有兩種辦法:
1、通過context來獲取,簡單方便:
private String getRunningActivityName() {
String contextString = context.toString();
return contextString.substring(contextString.lastIndexOf(".") + 1, contextString.indexOf("@"));
}
2、通過特定許可權獲取
<uses-permission android:name="android.permission.GET_TASKS" />

private String getRunningActivityName(){
ActivityManager activityManager=(ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
String runningActivity=activityManager.getRunningTasks(1).get(0).topActivity.getClassName();
return runningActivity;
}

⑥ android里activity跳轉時如何結束當前activity

Activity的跳轉後面直接finish()就可以了。
比如從MainActivity跳到SecondActivity:
startActivity(new Intent(MainActivity.this, SecondActivity.class));
finish();
這樣就行了

⑦ 如何獲得當前的activity android

android開發中獲取當前的Activity有多種情況;

  1. 在Activity中,this就是當前的Activity,例如this.startActivity。

  2. 在Fragment中可以通過 getActivity()來得到當前裝載這個Fragment的Activity。

  3. 通過Activity堆棧來獲取當前顯示的這個Activity

    ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

    ComponentName cn = am.getRunningTasks(1).get(0).topActivity;

⑧ 在android中,怎樣刷新當前的activity

刷新activity的方法:
1. 刷新當前activity界面數據(手動刷新):
在activity類下新增一個refresh()方法:
/**
* 刷新, 這種刷新方法,只有一個Activity實例。
*/
public void refresh() {
onCreate(null);
}

2. 刷新另一個activity界面數據(自動刷新):
在涉及到sqlite3資料庫操作的activity類下重寫onResume()方法:(此處建議復習下activity的生命周期, 並了解下onResume()方法的使用)
/**
* 調用onCreate(), 目的是刷新數據,
* 從另一activity界面返回到該activity界面時, 此方法自動調用
*/
@Override
protected void onResume() {
super.onResume();
onCreate(null);
}
由此, 涉及到sqlite資料庫數據的插入/更新/刪除的activity的類, 建議像上面一樣重寫onResume()方法, 這是本人在實踐中解決"刷新另一activity界面數據"的可行方法

⑨ android 判斷當前在哪個activity界面

需要在哪裡判斷呢, Activity中, this或者context就是當前界面,如果是在service中要獲取當前activity, 那就要用packageManager來判斷

⑩ 安卓 當前activity的引用怎麼傳遞

一種是像樓主所說的,在Activity里注冊一個BroadcastReceiver,Service完成某個任務就可以發一個廣播,接收器收到廣播後通知activity做相應的操作。 另一種是,使用bindService來關聯Service和Application,應用.apk里的所有組件一般情況都運行在同一個進程中,所以不需要用到IPC,bindService成功後,Service的Client可以得到Service返回的一個iBinder引用,具體的參見Service的文檔及onBind的例子,這樣Service的引用就可以通過返回的iBinder對象得到,如 public class LocalService extends Service { // This is the object that receives interactions from clients. See // RemoteService for a more complete example. private final IBinder mBinder = new LocalBinder(); public class LocalBinder extends Binder { LocalService getService() { return LocalService.this; } } @Override public IBinder onBind(Intent intent) { return mBinder; } } 之後Client通過這個iBinder對象得到Service對象引用之後,可以直接和Service通訊,比如讀取Service中的值或是調用Service的方法。

熱點內容
抖音電腦後台伺服器中斷 發布:2025-05-15 11:11:59 瀏覽:307
sql2008伺服器 發布:2025-05-15 11:03:27 瀏覽:306
我的世界pe伺服器創造 發布:2025-05-15 10:51:17 瀏覽:608
移動端打吃雞要什麼配置 發布:2025-05-15 10:48:16 瀏覽:756
我的世界哪五個伺服器被炸了 發布:2025-05-15 10:36:16 瀏覽:994
ehcache存儲對象 發布:2025-05-15 10:35:31 瀏覽:528
搭建虛擬電腦的伺服器 發布:2025-05-15 10:29:31 瀏覽:270
湖人雙核配置哪個最好 發布:2025-05-15 10:09:48 瀏覽:980
手機熱點密碼怎麼查看 發布:2025-05-15 09:54:47 瀏覽:109
生意發力雲存儲 發布:2025-05-15 09:54:45 瀏覽:617