我正在制作一個(gè),當(dāng)我想將上下文傳遞到使用關(guān)鍵字和方法在封閉范圍內(nèi)運(yùn)行的靜態(tài)函數(shù)SplashActivity時(shí),我遇到了問題。SplashActivityCountDownTimerthisgetBaseContext()長話短說我試圖弄清楚如何訪問SplashActivity封閉范圍內(nèi)的上下文,即CountDownTimer.我嘗試過的:SplashActivity temp = this我已經(jīng)對(duì)的方法做了SplashActivity temp = this;聲明,但決定這對(duì)我所做的所有事情都無效,因?yàn)槲冶仨殲槲宜龅拿總€(gè)類進(jìn)行聲明。onCreateActivityActivityActivityActivityContext temp = this.getBaseContext();基本上與上面相同,但對(duì)所有的都更靈活,Activity但在我看來對(duì)于該程序仍然無效。ClassName.staticFunction(super.getBaseContext());這不會(huì)起作用,因?yàn)樗麮ountDownTimer不是extends來自SplashActivity,盡管這種解決方案是我一直在尋找的解決方案。代碼:SplashActivity.javapublic class SplashActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { //... new CountDownTimer(3000,100) { //... public void onFinish() { MainActivity.StartActivity( SplashActivity.getBaseContext() ); //SplashActivity. will throw an error, must replace finish(); } }.start(); }}MainActivity.javapublic class MainActivity extends Activity { ... public static void StartActivity(Context mContext) { Intent act = new Intent(mContext, MainActivity.class); mContext.startActivity(act); }}我的期望:運(yùn)行MainActivity.StartActivity(something.getBaseContext)時(shí)SplashActivity CountDownTimer無需創(chuàng)建任何附加變量(因?yàn)閮?nèi)存優(yōu)化),創(chuàng)建視圖MainActivity。
1 回答

楊魅力
TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
目前,我正在使用這個(gè)解決方案:
final Context self = this;
其中插入:
public class SplashActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
final Context self = this; // HERE
//...
new CountDownTimer(3000,100) {
public void onFinish() {
MainActivity.StartActivity( self ); //HERE
...
添加回答
舉報(bào)
0/150
提交
取消