android获取当前活动,如何在Android中获取当前的前台活动上下文?

本文介绍了一个简单的步骤来获取Android应用中的当前前台活动上下文。通过继承Application类并创建一个全局的MyApp实例,可以在整个应用中跟踪当前活跃的Activity。此外,通过在每个Activity中覆盖生命周期方法,可以确保始终更新这个全局实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本示例演示了如何在Android中获取当前的前台活动上下文

步骤1-在Android Studio中创建一个新项目,转到File⇒New Project并填写所有必需的详细信息以创建一个新项目。

第2步-将以下代码添加到src / MyApp.javapackage app.nhooo.com.sample ;

import android.app.Activity ;

import android.app.Application ;

public class MyApp extends Application {

private Activity mCurrentActivity = null;

@Override

public void onCreate () {

super .onCreate() ;

}

public Activity getCurrentActivity () {

return mCurrentActivity ;

}

public void setCurrentActivity (Activity mCurrentActivity) {

this . mCurrentActivity = mCurrentActivity ;

}

}

步骤3-将以下代码添加到src / MyBaseActivity.javapackage app.nhooo.com.sample ;

import android.app.Activity ;

import android.os.Bundle ;

import android.support.v7.app.AppCompatActivity ;

public class MyBaseActivity extends AppCompatActivity {

protected MyApp mMyApp ;

public void onCreate (Bundle savedInstanceState) {

super .onCreate(savedInstanceState) ;

mMyApp = (MyApp) this .getApplicationContext() ;

}

protected void onResume () {

super .onResume() ;

mMyApp .setCurrentActivity( this ) ;

}

protected void onPause () {

clearReferences() ;

super .onPause() ;

}

protected void onDestroy () {

clearReferences() ;

super .onDestroy() ;

}

private void clearReferences () {

Activity currActivity = mMyApp .getCurrentActivity() ;

if ( this .equals(currActivity))

mMyApp .setCurrentActivity( null ) ;

}

}

步骤4-将以下代码添加到src / MainActivity.javapackage app.nhooo.com.sample ;

import android.app.Activity ;

import android.support.v7.app.AppCompatActivity ;

import android.os.Bundle ;

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate (Bundle savedInstanceState) {

super .onCreate(savedInstanceState) ;

setContentView(R.layout. activity_main ) ;

Activity currentActivity = ((MyApp)

getApplicationContext()).getCurrentActivity() ;

}

}

第5步-将以下代码添加到androidManifest.xml xml version= "1.0" encoding= "utf-8" ?>

package= "app.nhooo.com.sample" >

android :name= ".MyApp"

android :allowBackup= "true"

android :icon= "@mipmap/ic_launcher"

android :label= "@string/app_name"

android :roundIcon= "@mipmap/ic_launcher_round"

android :supportsRtl= "true"

android :theme= "@style/AppTheme" >

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值