Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: How to Clear Intent Stack While Using SingleTask

Tags:

android

I'm using Twitter oAuth library in my application. Users are logging in with ther Twitter accounts.

In activity A, twitter login is available. When user logged in, I want to start activity B with no history. Here is my all stuff:

Firstly, Manifest.xml, so I set launchMode=singleTask as Twitter api requested:

<activity
    android:name=".A_Activity"
    android:label="@string/app_name"
    android:launchMode="singleTask"
    android:theme="@android:style/Theme.Black.NoTitleBar">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="my_twitter_scheme" />
    </intent-filter>
</activity>

Here is how I'm starting activity B:

Intent i = new Intent(A.this, B.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);

Note: I'm calling activity B over BroadcastReceiver instance.

When I logged in, my receivers starting activity B properly, but unfortunately when I pressed the back button, application turning back to activity A.

I suppose it's about launchMode and as I said, Twitter needs that option. What am I doing wrong? Any help or suggestion (maybe about Twitter) would be great.

like image 843
Martin Avatar asked Nov 03 '22 17:11

Martin


1 Answers

I'm sure there should be more efficient ways to solve this issue but, I suggest something different.

Just call finish() method after you started an activity, so activity A would finish and when user pressed back button in activity B application returns home screen as you hope.

Also check twice your dialogs to avoid any exceptions, i.e check this question (and answers too) to understand what I meant.

like image 93
Ogulcan Orhan Avatar answered Nov 11 '22 11:11

Ogulcan Orhan