我有两个应用程序,com.appone.one
和com.apptwo.two
。
我想将数据从appone
传输到apptwo
,我想当数据传输到apptwo
,apptwo
打开或如果打开只出现(onResume)并显示该数据。
com.appone.one:
Intent i = new Intent(Intent.ACTION_DATE_CHANGED);
PackageManager manager = getPackageManager();
i = manager.getLaunchIntentForPackage("com.apptwo.two");
i.putExtra("MessageText",""+Connect.MessageArrive.toString());
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);
com.apptwo.two:
@Override
public void onResume() {
super.onResume();
String name=getIntent().getStringExtra("MessageText");
Toast.makeText(getApplicationContext(),String.valueOf(name), Toast.LENGTH_LONG).show();
}
我只想写这一行:
String name=getIntent().getStringExtra("MessageText");
在OnResume
中,因为我不想再次加载 apptwpo,如果我在onCreate
中编写这一行,我的代码工作正常。但我希望在onResume
中。现在apptwo
返回 null:(
我该怎么办?提前感谢
您可以使用 Content Providers 在应用程序之间共享数据。您可以通过以下链接了解有关 Content Providers 的更多信息。
http://developer.android.com/guide/topics/providers/content-providers.html注意:如果我没有错与您的应用程序之间的内容提供商传递数据,您需要使用相同的密钥库签署您的应用程序。
您还可以使用 Intents 将数据传递给您的应用程序。您可以从检查它。
http://developer.android.com/training/sharing/send.html这不是一个好的做法,但您可以使用共享首选项。
SharedPreferences preferences = getSharedPreferences(PREF_NAME, MODE_WORLD_READABLE);
第三种可能更好的方法是使用protocol
或自定义URI scheme
。默认情况下,这是 Android 应用程序发送和接收数据的方式。例如,当您单击通过电子邮件发送给您的 url 链接时,应用程序会打开默认的浏览器应用程序。这是因为在操作系统中注册的浏览器可以处理与 Web uri 模式匹配的 URI。
请参阅附加链接
http://developer.android.com/training/basics/intents/filters.html这两个应用程序都是你的,所以可以很容易地做到这一点。
1)通过使用共享首选项,您可以从 app1 将数据保存在移动设备中,并获取该数据并在 app2 中使用,反之亦然。
SharedPreferences 仅对小数据有用。
2)内容提供商按照您的要求进行操作,只有在需要在多个应用程序之间共享数据时才需要内容提供商
http://developer.android.com/guide/topics/providers/content-providers.html在您的情况下,您的应用程序必须是内容提供商
请参考您的要求http://www.compiletimeerror.com/2013/12/content-provider-in-android.html#.Vwsy1vl97IU
使用 Intent 与 BroadCastReceiver 一起在应用程序之间传递数据
在您的 appOne 创建
1) 动态广播接收器在您的 appOne 活动在特定事件调用 sendBroadcast (意图)
不要像上面提到的那样调用活动。在 appTwo 中注册一个广播接收器,并使用 appTwo 中提到的相同操作从 appOne 中发送 Broadacst 意图。因此,当您从 appOne 中触发 sendbradcast(Intent)时,将触发 appTwo 侦听该意图,并且在那里您调用 appTwo 的 Activity(您的 MainActivity)appTwo 检查您的 Activity
现在在您的 appTwo 创建
1)静态 BroadCastReceiver 接收的意图与一些行动清单,当应用程序未打开
2)动态广播接收器在你的 appTwo 活动,如果应用程序是开放的刷新消息
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(76条)