[android]获得 context 的 Activity 在一个可序列化的类

发布时间: 2016/10/10 21:32:29
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个类,实现 '可序列化' 抱歉无法获取 context 的我主 activity 在它。 这里是我这类的代码︰

public class Game implements Serializable{
private String name;
private ColorTheme theme;
private int distance = 0;
private int score = 0;
boolean boom = false;
protected Context context;

public Game(MainActivity context){
    this.context = context.getApplicationContext();
}

在此之后,我想我得到 context ,然后自己想要的什么是,当分数是大于 1,那么应用程序应该关闭。

score = (i+1);
if (score >1)
{

}

我想关闭我的游戏里面这种情况,但它不给我任何选项完成 context 。请帮我在哪里我错了。我认为 context 在此可序列化的类中未成功实施。需要帮助

解决方法 1:

仅供参考

关闭 application 里面的游戏类,不是一种好方法,它是更好地在里面做 Activity 自身。 一个好的解决方案,为此可以创建类似于以下内容的游戏类中的方法︰

public boolean shouldCloseApplication(){
  return this.score > 1;
}

和在 Activity ,使用以下内容︰

if(game.shouldCloseApplication()){
  //close the application as mentioned below
  this.finishAffinity();
}

说,如果您想要关闭 application ,您只需要调用

this.finishAffinity();

所以后指这

所以,与其通过" MainActivity ",直接使用" Context "通过它与

Game game = new Game(MainActivity.this);

和接收与

public Game(Context context){
  this.context = context;
}

来用用

if(score > 1)
{
  context.finishAffinity();
}

不建议,但作品

如果这不起作用,请使用

context.getActivity().finish();
System.exit(0);

希望这有助于

官方微信
官方QQ群
31647020