Java 将捆绑包发送到主/启动器活动之前';是什么创造的?
捆绑包可以轻松地传递给新活动,目的是:Java 将捆绑包发送到主/启动器活动之前';是什么创造的?,java,android,android-intent,android-activity,Java,Android,Android Intent,Android Activity,捆绑包可以轻松地传递给新活动,目的是: Intent intent = new Intent(this, DisplayMessageActivity.class); Bundle b = new Bundle(); // add extras... intent.putExtras(b); startActivity(intent); 是否可以使用捆绑包(或类似工具)向主活动发送数据 应用程序类是在任何活动中创建的,我想用它向主活动发送数据。我不希望全局访问数据,也不希望在主活动上使用静态方
Intent intent = new Intent(this, DisplayMessageActivity.class);
Bundle b = new Bundle();
// add extras...
intent.putExtras(b);
startActivity(intent);
是否可以使用捆绑包(或类似工具)向主活动发送数据
应用程序类是在任何活动中创建的,我想用它向主活动发送数据。我不希望全局访问数据,也不希望在主活动上使用静态方法将数据传递给它。因为您已经拥有应用程序的句柄,所以我只想使用它创建一个应用程序变量-
public class MyApplication extends Application {
private String someVariable;
public String getSomeVariable() {
return someVariable;
}
public void setSomeVariable(String someVariable) {
this.someVariable = someVariable;
}
}
您必须在清单中声明类,如下所示:
<application android:name="MyApplication" android:icon="@drawable/icon" android:label="@string/app_name">
正如杰夫·吉尔费尔特在这里所解释的:
您是否考虑过暂时使用SharedReferences,然后在创建新活动时删除SharedReferences数据 一些示例代码: 活动1:
SharedPreferences prefs = getSharedPreferences("mydata", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("secretstring", "asdasdasdqwerty");
editor.commit();
活动2:
SharedPreferences prefs = getSharedPreferences("mydata", 0);
String savedString = prefs.getString("secretstring", "");
SharedPreferences prefs = getSharedPreferences("mydata", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("secretstring", "nope");
editor.commit();
第二种可能是对公共变量使用getter和setter,但只通过检查类请求的变量来将正确的变量返回给主类
希望这有帮助:) 这不是我要找的。在任何活动中都可以通过getApplication()通过应用程序访问数据,正如您所说,这基本上是一个全局变量。我不想要全局变量。我想要的数据只适用于主要活动。糟糕,你在原来的帖子中确实有这些数据。我不太确定你想要的是什么。您需要了解,
应用程序
类在每个进程中只创建一次。这意味着,当您第一次启动应用程序时,将创建应用程序
类,然后创建main活动
。现在用户按下返回键。您的main活动将完成。现在,用户再次启动应用程序。如果进程没有被回收(终止),那么Android将创建并启动一个新的MainActivity
实例。它不会再次调用应用程序
类上的onCreate()
。
SharedPreferences prefs = getSharedPreferences("mydata", 0);
String savedString = prefs.getString("secretstring", "");
SharedPreferences prefs = getSharedPreferences("mydata", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("secretstring", "nope");
editor.commit();