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

android判斷activity

發布時間: 2022-08-04 09:44:31

❶ android怎麼判斷當前activity

給每個Activity都添加對應的代碼:
@Override
protected void onResume() {
super.onResume();
AppContext.getInstance().setCurrentActivity(this);
}

@Override
protected void onPause() {
AppContext.getInstance().setCurrentActivity(null);
super.onPause();
}
@Override
public void onDestroy() {
AppContext.getInstance().setCurrentActivity(null);
super.onDestroy();
}
然後在自己的app中:
import android.app.Activity;
import android.app.Application;

public class AppContext extends Application{
private Application parentApp;
private Activity curActivity;

public Application getAppContext() {
return parentApp;
}
private static class LazyHolder {
static AppContext instance = new AppContext();
}
public static AppContext getInstance() {
return LazyHolder.instance;
}
@Override
public boolean Start(Map<String, Object> args) {
Object param = args.get(appContext);
if (param instanceof Application) {
parentApp = (Application)param;
return true;
}
return false;
}
@Override
public void Stop(Map<String, Object> args) {

}

public void setCurrentActivity(Activity curActivity){
this.curActivity = curActivity;
}

public Activity getCurrentActivity(){
return this.curActivity;
}

public boolean isInAdapterActivity(){
boolean isInAdapterActivity = false;
if(null != curActivity){
if(curActivity instanceof AdapterActivity){
isInAdapterActivity = true;
}
}
return isInAdapterActivity;
}

public boolean isInScanActivity(){
boolean isInScanActivity = false;
if(null != curActivity){
if(curActivity instanceof ScanActivity){
isInScanActivity = true;
}
}
return isInScanActivity;
}
public boolean isInMainActivity(){
boolean isInMainActivity = false;
if(null != curActivity){
if(curActivity instanceof MainActivity){
isInMainActivity = true;
}
}
return isInMainActivity;
}
}
然後在對應各個Activity:
if(AppContext.getInstance().isInMainActivity()){
//do sth.
}

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

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

❸ android如何判斷兩個Activity是同一個Activity

判斷兩個activity的className

❹ 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是否運行

判斷android activity是否運行(可見)方法如下:
public static boolean isActivityRunning(Context mContext,String activityClassName){
ActivityManager activityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> info = activityManager.getRunningTasks(1);
if(info != null && info.size() > 0){
ComponentName component = info.get(0).topActivity;
if(<span style="font-family: Arial, Helvetica, sans-serif;">activityClassName</span>.equals(component.getClassName())){
return true;
}
}
return false;
}

❻ 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是否存在

Android系統中,判斷應用有無指定的Activity有兩種方式:
1.根據包名判斷,以下為判斷代碼:
public boolean checkApkExist(Context context, String packageName) {
if (packageName == null || 「」.equals(packageName))
return false;
try {
ApplicationInfo info = context.getPackageManager()
.getApplicationInfo(packageName,
PackageManager.GET_UNINSTALLED_PACKAGES);
return true;
} catch (NameNotFoundException e) {
return false;
}
}

2. 根據Intent判斷,以下為判斷代碼:
public boolean checkApkExist(Context context, Intent intent) {
List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent, 0);
if(list.size() > 0){
return true;
}
return false;
}
public boolean checkApkExist(Context context, String packageName) {
if (packageName == null || 「」.equals(packageName)) return false;
try {
ApplicationInfo info = context.getPackageManager() .getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES); return true;
} catch (NameNotFoundException e) { return false; }
}
public boolean checkApkExist(Context context, Intent intent) {
List<ResolveInfo> list = context.getPackageManager()
.queryIntentActivities(intent, 0);
if (list.size() > 0) {
return true;
}
return false;
}

❽ android,怎麼判斷最後一個activity,退出程序給提示

android,判斷最後一個activity可以用以下方法:

在Activity的方法中, 有一個方法isTaskRoot()方法, 這個方法可以判斷當前Activity是否是最後一個Activity, 如果是, 用戶再按一次返回就退出當前應用, 否則回到上一個仍然活動的Activity。具體的操作步驟如下:
1、為每個Activity創建基類BaseActivity,使得每個Activity都是繼承於基本的BaseActivity的。
2、復寫BaseActivity的finish方法,在方法中調用isTaskRoot()判斷是否是最後一個Activity,如果是給出提示。


以下給出相關重要部分代碼:

publicclass BaseActivity extends Activity{

@Override
public void finish() {
super.finish();
if(isTaskRoot()){
Toast.makeText(this,"已經退出程序",Toast.LENGTH_LONG).show();
}
}
}

熱點內容
redhatpython安裝 發布:2024-04-30 21:37:31 瀏覽:355
長城大屏導航初始密碼多少 發布:2024-04-30 21:37:18 瀏覽:181
知道源碼 發布:2024-04-30 20:51:27 瀏覽:346
c語言視頻教程夏老師 發布:2024-04-30 20:47:54 瀏覽:318
linux五子棋 發布:2024-04-30 20:46:40 瀏覽:285
chrome添加腳本 發布:2024-04-30 20:44:25 瀏覽:788
多腳本界面 發布:2024-04-30 20:38:45 瀏覽:738
我的世界顯示無法訪問伺服器 發布:2024-04-30 20:35:00 瀏覽:256
台式電腦如何自己配置 發布:2024-04-30 20:34:49 瀏覽:753
安卓帶著什麼樣的牌手機 發布:2024-04-30 20:19:26 瀏覽:929