我的问题是我在activities
中有两个function
A和B以及一个acitivity B
。
在activity A
中,如果我点击button
,它会致电:this.finish()
,然后我会在第二个activity
即ActivityB
,并且onResume()
它将执行我的function B : onResume() { functionB}
在此案例之后,我想使用functionB
。
所以我想知道是否有可能知道(使用onResume()
时),来自"你来的地方" :所以如果我从另一个不是A的onResume()
获得activity
,它将永远不会使用function B
,但如果我完成ActivityA
希望你明白。
谢谢
答案 0 :(得分:1)
这可以使用Map<String,RoleWrapper> roles =new HashMap<>();
代替startActivityForResult
来完成。像这样:
startActivity
然后你会打电话给:
而不是调用this.finish()startActivityForResult(activityIntent, 100);
然后在你的恢复活动中,这个方法将在onResume之前被调用:
setResult(RESULT_OK);
this.finish();
在这里,您可以将某种@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == 100) {
// do something
}
}
变量设置为true,让boolean
知道它来自您的其他Activity
,然后在onResume检查中查看{{1}如果它做了你想做的任何事情,则设置为true。
答案 1 :(得分:1)
您必须使用SharedPreferences才能在您的方案中使用它。
在您的ActivityA中。在调用finish();
之前,对你的buttonClick做这样的事情SharedPreferences sp = ActivityA.this.getSharedPreferences("prefs", MODE_PRIVATE);
SharedPreferences.Editor preferencesEditor = sp.edit();
sp.putBoolean("from" , true);
sp.commit();
然后在你的ActivityB的onResume中这样做。
SharedPreferences sp = ActivityB.this.getSharedPreferences("prefs", MODE_PRIVATE);
if(sp.getBoolean("from",false))
{
// write your code here . it is from activirt A.
}
答案 2 :(得分:0)
Intent intent = new Intent(this, YourActivity.class);
Bundle extras = new Bundle();
extras.putBoolean(key,value);
intent.putExtras(extras);
startActivity(intent); // This passes the information to your activity
使用
接收活动中的信息boolean value = getIntent().getExtras().putBoolean(key);
使用value
,您可以了解来自onResume
还是来自某个地方的来电。
希望有所帮助