从位于Android库中的AsyncTask向project Android AppWidgetProvider发送数据
我有两个项目:一个Android主项目和一个Android库。在Android库中,我使用Asynctasks和onPostExecute中的数据,我希望能够将这些数据发送到导入该库的Android项目。在这种情况下,主要项目是一个小部件应用程序,但我认为这不应该是相关的。 我曾考虑在我的主要项目中使用onActivityResult,但这似乎是个坏主意 以下是我在主项目中调用我的库的方式:从位于Android库中的AsyncTask向project Android AppWidgetProvider发送数据,android,android-library,Android,Android Library,我有两个项目:一个Android主项目和一个Android库。在Android库中,我使用Asynctasks和onPostExecute中的数据,我希望能够将这些数据发送到导入该库的Android项目。在这种情况下,主要项目是一个小部件应用程序,但我认为这不应该是相关的。 我曾考虑在我的主要项目中使用onActivityResult,但这似乎是个坏主意 以下是我在主项目中调用我的库的方式: Intent libraryIntent = new Intent(context, Complica
Intent libraryIntent = new Intent(context, ComplicatedRequest.class);
libraryIntent.addFlags(Intent. FLAG_ACTIVITY_NEW_TASK);
context.startActivity(libraryIntent);
在我的库项目中,在onPostExecute方法中,我不知道如何将数据从那里发送回我的应用程序。我几乎可以肯定这是一个无关紧要的问题,但我宁愿问,然后实施一个相当糟糕的实践解决方案。谢谢。使用意向和意向过滤器(清单)
Use Intent and IntentFilter(Manifest)
<i>
Intent intent = new Intent();
intent.setAction(MY_ACTION);
intent.put("key", value);
context.startActivity(intent);
</i>
In Activity
<i>
String s = intent.getExtra().getString("key");
</i>
意图=新意图();
意图。设置动作(我的动作);
意图。放置(“键”,值);
背景。开始触觉(意图);
活跃
字符串s=intent.getExtra().getString(“键”);
使用startActivityForResult(参见)(官方文件中的示例):
您可以通过data.getStringExtra(字符串名称)(或其他类型,如果需要)检索值
public class MyActivity extends Activity {
static final int PICK_CONTACT_REQUEST = 0;
protected boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
// When the user center presses, let them pick a contact.
startActivityForResult(
new Intent(Intent.ACTION_PICK, new Uri("content://contacts")), PICK_CONTACT_REQUEST);
return true;
}
return false;
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICK_CONTACT_REQUEST) {
if (resultCode == RESULT_OK) {
// A contact was picked. Here we will just display it to the user.
startActivity(new Intent(Intent.ACTION_VIEW, data));
}
}
}
}