是否可以在不调用新活动的情况下获取对象值?

时间:2011-09-01 05:29:52

标签: android android-layout android-emulator android-widget android-ndk

我知道调用新活动的东西,并使用putExtra和getExtra函数将对象值从一个活动传递到另一个活动。但我想在不调用的情况下传递值并启动新活动。可能吗 ? 如果是,请告诉我如何做到这一点?

5 个答案:

答案 0 :(得分:2)

您还可以使用Application类声明全局变量

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

您可能希望使用handler的handleMessage()并在消息中传递该对象。

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

然后你可以调用handler.handleMessage(msg),你可以将任何对象分配给msg.onj

答案 3 :(得分:1)

您可以使用像SQLite这样的数据库的帮助,或者您可以使用Constant类概念,您可以在其中创建公共静态变量并将数据存储在一个活动中并访问其他活动。希望这对您有帮助。

答案 4 :(得分:1)

有很多方法可以将值传递给活动:

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

我认为通过更多方式传递参数并不是很困难。