我目前正在构建一个应用程序,并且遇到持久性问题。 我有2个活动A和B.在A中定义信息'aa'和B信息'bb'('aa'通过intent提供给B)。当在B中并通过导航后退按钮(在操作栏中)回到A时,我希望A有权访问'bb'值,以便我可以根据它执行一些逻辑。对你来说,坚持这些数据在A中访问它的最佳方式是什么? 在此感谢您的时间和帮助。 干杯, 本杰明建议在应用程序中导航时保持数据持久
0
A
回答
1
你可以尝试使用onActivityResult。
在活动B:
@Override
public void onBackPressed() {
// super.onBackPressed();
Intent intent = new Intent();
//put something in intent
setResult(RESULT_OK, intent);
finish();
}
在活动答:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
//get extra...
}
}
}
0
当你从活动一开始活动B,使用startActivityForResult(Intent, int);
而非正常startActivity(Intent);
,并在活动覆盖onActivityResult()
一个
例如。
public class ActivityA extends Activity{
private static final int MY_REQUEST_CODE = 123;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//Setup your activity and views...
//Assuming that you start ActivityB when a button is clicked.
btnExample.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Intent intent = new Intent(ActivityA.this, ActivityB.class);
//Setup your intent and put the data.
startActivityForResult(intent, MY_REQUEST_CODE);
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent backIntent)
{
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK && requestCode == MY_REQUEST_CODE && backIntent != null){
//Handle your logic here.
}
}
}
和活动B,覆盖onBackPressed
public class ActivityB extends Activity{
//Setup your activity
@Override
public void onBackPressed()
{
Intent backIntent = new Intent();
//Put the data to backIntent
setResult(RESULT_OK, backIntent);
super.onBackPressed();
}
//The rest of your code
}
+0
也谢谢你Malvin!这很好! – Ben 2014-10-08 09:43:28
相关问题
- 1. 如何在整个应用程序中保持数据持久性
- 2. 如何使应用程序在iOS/iPhone中保持持久性?
- 3. 微软建议让WPF应用程序持久化吗?
- 4. 在整个Grails应用程序中持久保存URL参数
- 5. ios应用程序保存数据与nsuserdefaults持久?
- 6. 使用.replaceWith更改导航文本并保持其持久
- 7. 使用应用程序类在Android中存储持久数据
- 8. 如何在Android应用程序中使用持久数据库
- 9. 用户退出应用程序时的数据持久性
- 10. 为Python应用程序创建持久数据以访问
- 11. ASP.Net在整个应用程序中持久化数据
- 12. iOS在后台应用程序中的数据持久性
- 13. 在Win窗体应用程序中持久化表单数据
- 14. 在Opera TV Store应用程序中存储Cookie /持久数据
- 15. 应用程序变为背景时的非持久数据
- 16. 在Android应用程序中保留持久变量
- 17. ios swift - 如何在导航应用程序时保持视频播放
- 18. 如何在Rails应用程序的测试数据库中创建持久表?
- 19. Web应用程序中的持久数据
- 20. iPhone应用程序中的数据持久性
- 21. iOS-Swift应用程序中的数据持久性
- 22. Rails应用程序中的非持久性数据
- 23. 策略在黑莓应用程序的持久化数据
- 24. 持久数据/ C++中设置应用
- 25. 确保MongoDB中的数据持久性
- 26. 保持应用程序在iOS中
- 27. 将图像持久保存在应用程序内 - iOS
- 28. 如何在整个android应用程序生命周期中保持持久数据?
- 29. C++中的数据持久性 - 建议更好的方法
- 30. 过度使用应用程序类来存储持久数据
非常感谢Meneer :)!它工作完美。当用户单击导航栏中的后退按钮以使所有内容保持一致时,只需添加类似的逻辑即可。 – Ben 2014-10-08 09:43:10