android获取其他程序上下文,如何获取android中的当前前台活动上下文?

不要使用上一个(waqas716)的答案。

为避免这种情况,您应该管理活动参考。在清单文件中添加应用程序的名称:

android:name=".MyApp"

.... 

你的申请类:public class MyApp extends Application {

public void onCreate() {

super.onCreate();

}

private Activity mCurrentActivity = null;

public Activity getCurrentActivity(){

return mCurrentActivity;

}

public void setCurrentActivity(Activity mCurrentActivity){

this.mCurrentActivity = mCurrentActivity;

}

}

创建一个新活动:public class MyBaseActivity extends Activity {

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);

}}

因此,现在不要为您的活动扩展Activity类,只需扩展MyBaseActivity。现在,您可以从应用程序或活动上下文中获取当前活动:Activity currentActivity = ((MyApp)context.getApplicationContext()).getCurrentActivity();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值