有没有办法保留活动实例的引用?
想象一下,我有以下代码:
Intent intent=new Intent(this, OBDActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
Activity openedActiviy = ????
现在我想保留在某个地方打开的OBDActivity的实例,因为我想稍后完成它。而不是OBDActivity它可以是任何其他活动,实际上我想要一个保持最后一次打开活动的变量。
openedActiviy.finish();
任何想法?
答案 0 :(得分:1)
我认为你应该使用广播。您在新活动中注册广播接收器,然后从前一个发送广播。 https://developer.android.com/guide/components/broadcasts.html
答案 1 :(得分:1)
保持活动的参考是一个坏主意。它可能会导致内存泄漏。 相反,您可以在活动中使用广播监听器。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select name="" id="dropdown">
<option value="test1">TEST1</option>
<option value="test2">TEST2</option>
<option value="test3">TEST3</option>
<option value="test4">TEST4</option>
<option value="test5">TEST5</option>
</select>
<div id="show">
TEST SHOW
</div>
答案 2 :(得分:0)
任何活动完成时使用 BroadcastReceiver
实施广播接收器
BroadcastReceiver myBroadCastReceiver = new BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//here you can finish activity or whatever you want.
}
};
注册广播接收器
LocalBroadcastManager.getInstance(MainActivity.this).registerReceiver(myReceiver, new IntentFilter("com.test.MY_ACTION"));
活动结束时发送广播
Intent i = new Intent("com.test.MY_ACTION");
LocalBroadcastManager.getInstance(MainActivity.this).sendBroadcast(i);