2012-09-05 57 views
3

我有一个Activity类,里面有一些方法。我想在method2内执行onBackPressed(),因为我有一个我想要释放的重要变量。我不能/不要使这个变量具有更大的作用域,并且我不能在method2中释放这个变量,因为我想通过按下后退按钮来终止应用程序和执行方法2。Android onBackPressed()里面的方法

public class example extends Activity { 
    public void onCreate(Bundle savedInstanceState) { 
     method1(); 
    } 

    public method 1 { 
     //take some input and assign in a variable. 
     method2(variable); 
    } 

    public method2 { 
     // do something with the variable that take before at method 1 
     // and finally press back button 
     onBackPressed(){} 
     //free variable , finish(); 
    } 
} 

正如你知道我不能覆盖的方法内onBackPressed()只出在活动区域​​。你能为我提供一个解决方案吗?

+0

实现onBackPressed意味着你要完成你的活动,或者你想要去背景或其他东西。你能解释一下你为什么要这样做? –

回答

4

您应该覆盖活动范围中的onBackPressed()方法,并从您的方法中调用它。

@Override 
public void onBackPressed() 
{ 
    super.onBackPressed(); 
    // Do your things. 
} 

public void method() 
{ 
    onBackPressed(); 
} 

如果你想添加一些复杂的逻辑在onBackPressed方法,只是创建另一个参数。

public void myOnBackPressed(int param1, String param2) 
{ 
    // Do your complex logic. 
    onBackPressed(); 
} 

public void method() 
{ 
    myOnBackPressed(myInt, myString); 
} 
+1

你需要更多的解释吗? –