我創建一個自定義的應用程序快捷方式的意圖類似以下內容:意圖爲活動帶來了另一個活動前
Intent.ShortcutIconResource icon = ...;
Intent intent = new Intent();
Intent launchIntent = new Intent(getThis(), HandleShortcutActivity.class);
// add a few user settings
而且活動處理的意圖類似以下內容:
public class HandleShortcutActivity extends AppCompatActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_helper);
// get data from intent
// ...
// handle the action
// ...
// finish this activity instantly again
finish();
}
}
而這裏的我的清單:
<activity
android:name=".activities.MainActivity"
android:windowSoftInputMode="adjustPan"
android:launchMode="singleTask"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activities.HandleShortcutActivity"
android:configChanges="orientation|screenSize"
android:excludeFromRecents="true"
android:noHistory="true"
android:theme="@style/Theme.Transparent"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
問題
如果MainActivity
正在後臺運行,並且我的快捷方式意圖已啓動,則我的MainActivity
已排在前面。爲什麼?我怎樣才能避免這種情況?
爲什麼你完成();你在onCreate()中的活動? –
@MohdSaquib因爲快捷操作已經處理完畢,並且不需要任何可視化界面,就像活動 – prom85
問題出在您的清單代碼中刪除android:launchMode =「singleTask」 –