Android上是否存在任何全局活动,以至于我将我的代码放在一个活动中,它会影响我项目中的所有活动?这种情况发生在我身上,因为相同的代码是在KeyEvent.KEYCODE_BACK
例如,我在这里使用:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
try {
final Intent itnt_BackServices = new Intent(this,
BackServices.class);
AlertDialog.Builder alertbox = new AlertDialog.Builder(this);
alertbox.setTitle("Touch signs");
alertbox.setMessage("Do you want to quit!");
alertbox.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
stopService(itnt_BackServices);
mPlayer.stop();
finish();
}
});
alertbox.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
}
});
alertbox.show();
} catch (Exception e) {
// TODO: handle exception
}
}
return false;
}
我将其复制并粘贴到每个活动中,我宁愿使用某种全局活动。
答案 0 :(得分:17)
您可以创建一个扩展Activity
的类,然后将CustomActivity
扩展到所有Activity
类。
public abstract class CustomActivity extends Activity{
public abstract void initComponents(); // you can create a abstract method
public abstract void addListner(); // you can create a abstract method
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
// your stuff here....
}
return true;
}
}
现在,您可以extend
class
extend
Activity
任何有{{1}}的课程。
答案 1 :(得分:0)
将您的第一个主要活动编写代码,然后在此之后使用此活动扩展所有其他活动.....例如。 MainActivity是你的第一个主要活动然后在那里编写这个代码,之后只需要一个活动说它首先然后用MainActivity而不是Activity扩展它...... !!那就是..........
答案 2 :(得分:0)
我建议延长活动,因为@Lalit Poptani建议。因为有人说我可以提供另一种方法来实现这一点。
您可以创建在活动中实现的接口,包括public boolean onKeyDown(int keyCode,KeyEvent event)(只是为了提醒您必须为您的活动实现代码)
创建一个执行onKeyDown操作的全局(静态)类/函数。
public class ButtonHandler{
public static boolean handleButton(Context context,int keyCode, KeyEvent event){
..... your code here
}
}
然后只需拨打return ButtonHandler.handleButton(getApplicationContext(),keycode,event)
onKeyDown
方法。
但仍然......最重要的活动是最好的方式。如果由于某种原因你不想延长这是要走的路