Java 在倒计时封闭作用域中访问上下文
我正在制作一个Java 在倒计时封闭作用域中访问上下文,java,android,android-context,countdowntimer,Java,Android,Android Context,Countdowntimer,我正在制作一个SplashActivity,当我想将SplashActivity上下文传递到一个静态函数中时遇到了一个问题,该函数使用this关键字和getBaseContext()方法在CountDownTimer封闭范围内运行 TL;DR 我试图弄清楚如何在一个封闭的范围内访问SplashActivity上下文,即CountDownTimer 我尝试过的: splash活动温度=此 我做了一个SplashActivity temp=this对活动的onCreate方法的声明,但决定这不会对我
SplashActivity
,当我想将SplashActivity
上下文传递到一个静态函数中时遇到了一个问题,该函数使用this
关键字和getBaseContext()
方法在CountDownTimer
封闭范围内运行
TL;DR
我试图弄清楚如何在一个封闭的范围内访问SplashActivity
上下文,即CountDownTimer
我尝试过的:
splash活动温度=此
我做了一个SplashActivity temp=this
对活动
的onCreate
方法的声明,但决定这不会对我所做的所有活动
有效,因为我必须为我所做的每个活动
类声明活动
Context temp=this.getBaseContext()代码>
基本上与上述相同,但对所有活动更灵活
,但在我看来对该计划仍然无效ClassName.staticFunction(super.getBaseContext())代码>
这将不起作用,因为CountDownTimer
不会从SplashActivity
扩展,尽管我一直在寻找这种解决方案
公共类SplashActivity扩展活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//...
新倒计时(3000100){
//...
公共无效onFinish(){
MainActivity.StartActivity(SplashActivity.getBaseContext());
//SplashActivity。将引发错误,必须替换
完成();
}
}.start();
}
}
MainActivity.java
公共类MainActivity扩展了活动{
...
公共静态void StartActivity(上下文mContext){
意图行为=新意图(mContext,MainActivity.class);
mContext.startActivity(act);
}
}
我的期望:
运行
MainActivity.StartActivity(something.getBaseContext)
在SplashActivity
CountDownTimer
中运行MainActivity.StartActivity(something.getBaseContext)
,而不创建任何附加变量(因为内存优化),创建一个MainActivity
视图。现在,我使用此解决方案:
final Context self=this;
插入到:
公共类SplashActivity扩展活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
final Context self=this;//此处
//...
新倒计时(3000100){
公共无效onFinish(){
MainActivity.StartActivity(self);//此处
...
在这样的时刻,我真希望Java有C++中的指针
你能尝试使用MainActivity.StartActivity吗(this@SplashActivity)
?@DuyKhanhNguyen不幸的是,它不起作用,尽管我希望它能起作用。