سلام دوستان عزیز
وقتی توی ی اکتیویتی هستیم میشه فهمید که اسم اکتیویتی قبلی که این اکتیویتی رو صدا زده چی بوده؟ خودم چون بلد نیستم مجبورم اسم اکتیویتیا رو putExtra کنم بعد تو اکتیوتی بعد چک کنم از کدوم اکتیویتی اومده,راه بهتری وجود داره؟
سلام دوستان عزیز
وقتی توی ی اکتیویتی هستیم میشه فهمید که اسم اکتیویتی قبلی که این اکتیویتی رو صدا زده چی بوده؟ خودم چون بلد نیستم مجبورم اسم اکتیویتیا رو putExtra کنم بعد تو اکتیوتی بعد چک کنم از کدوم اکتیویتی اومده,راه بهتری وجود داره؟
کار خوبی میکنی یه راه دیگه هم هستش که تو کلاس Application اگه داری متغیر تعریف کنی ست کنی. با task هم میشه. ولی راهت درسته
توی onCreate هر اکتیویتی this رو توی یک متد استاتیک ذخیره کن بعد هرجا لازم داشتی بگو:
if(Helper.getAcitivity instanceOf MyActivity)
{
//do something
}
خیلی سادست.
کدشو مینویسم خودت برسی کن (معمولا از این کارا نمیکنم)
public class FirstActivity extends BaseActivity
{
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//do something and go to second activity
}
}
public class SecondActivity extends BaseActivity
{
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(getPreviusActivity instanceOf FirstActivity)
{
//previous activity was FirstActivity
}
else if(getPreviusActivity instanceOf OtherActivity)
{
//previous activity was OtherActivity
}
}
}
public class BaseActivity extends ActionBarActivity
{
private static BaseActivity previusActivity;
public BaseActivity getPreviusActivity()
{
return previusActivity;
}
@Override
protected void onDestroy()
{
super.onDestroy();
previusActivity = this;
}
}
ممنون بابت لطفت دوست عزیز
راه حل دیگه هم این هست که بجای استفاده از startActivity از startActivityForResult برای جابجایی بین اکتیویتی ها استفاده کنی، در این صورت می تونی در اکتیویتی دوم با متد getCallingActivity بفهمی که اکتیویتی اول کدوم بوده
http://stackoverflow.com/a/3304374/1686304