回答

2

您也可以使用应用程序类声明的全局变量

class Globalclass extends Application { 

    private String myState; 

    public String getState(){ 
    return myState; 
    } 
    public void setState(String s){ 
    myState = s; 
    } 
} 

class TempActivity extends Activity { 

    @Override 
    public void onCreate(Bundle b){ 
    ... 
    MyApp appState = ((MyApp)getApplicationContext()); 
    String state = appState.getState(); 
    ... 
    } 
} 

更新:

签出这个很好的教程关于如何做到这一点。

Application Class Using as Global

+0

感谢来自印度的Suri。但是存储数据呢?您是否需要使用存储其他活动数据的方法更新代码? –

+1

那么,你可以使用setState(“state set”)以相同的方式存储数据。 –

+0

这不是存储数据的好方法。我曾经使用这种方法,但似乎很容易出错。例如,如果以这种方式保存一些数据,然后运行需要大量内存的另一个应用程序,则应用程序将被终止,并且此全局状态将丢失。 – Michael

1

为此,您可以使用static variableSharedPreferences或者如果您的数据量很大,那么您可以使用SQlite

+0

我不想使用SQLite,因为我已经有了它。那么还有其他替代品吗? –

+0

如果你不需要这个值,当应用程序再次启动,然后尝试使用静态变量.. –

1

您可能想要使用处理程序的handleMessage()并在消息中传递该对象。

  Handler handler = new Handler(){ 
    @Override 
    public void handleMessage(Message msg) { 
      } 
      }; 

然后可以调用handler.handleMessage(MSG),你可以将任意对象msg.onj

+0

请给我一些例子或代码,我怎么能做到这一点。 。 。 –

+0

我编辑了我的答案,例如...希望这可以帮助 – CommonMan

1

你可以把数据库的帮助,像SQLite的,或者你可以去恒类的概念,你可以做一个公共静态变量和数据存储在其他activity.Hope这会一个活动和访问帮你。

1

是有很多方法的值传递给一个活动:

  • 您可以使用IntentFLAG_ACTIVITY_REORDER_TO_FRONT。在这种情况下,将调用onNewIntent()方法已启动的活动。
  • 您可以使用静态字段或静态方法将新数据传递给您的活动。但这并不是一个好方法,因为即使前台程序和所有静态数据都丢失,应用程序有时也会被终止。
  • 您可以使用广播消息将新数据发送到活动。在这种情况下,活动必须注册BroadcastReceiver

我认为这不是很难弥补更多的方式来传递参数。

相关问题