如何使用其他活动中的singleInstance活动重新启动活动

时间:2013-01-12 12:47:57

标签: android

如何使用来自其他活动的单个实例替换或重新启动活动。

我有两个活动,ActivityA和ActivityB。

清单中的

 <activity
    android:name=".ActivityA"
    android:label="@string/activityA"
    android:launchMode="singleInstance" >
</activity>
<activity
    android:name=".ActivityB"
    android:label="@string/activityB" />

我的问题,如何从ActivityB中的方法重新启动ActivityA。 ActivityB中的Mycode no是:

class ActivityB extends Activity{

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Button rButton = (Button) findViewById(R.id.restart);
        rButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                 restartActivityA();
            }
        });
    }

    public void restartActivityA() {
       Intent intent = new Intent(this, ActivityA.class);
       intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP);
       startActivity(intent);
       this.finish();
    }
}

如果我点击按钮,那么不要重启。

感谢。

2 个答案:

答案 0 :(得分:2)

尝试将此添加到您的ActivityA

    @Override
    protected void onNewIntent(Intent intent) 
    {
        super.onNewIntent(intent);           
    }

修改

像这样调用ActivityB:

Intent intent = new Intent(this, ActivityB.class); 
startActivity(intent);
finish();

感谢。

答案 1 :(得分:0)

尝试这可能会有所帮助。

Intent intent = getActivity().getIntent();//it will return the intent for current activity

希望这会有所帮助。