ǰÑÔ
ÔÚ Android¿ª·¢ÖУ¬»á¾³£´æÔÚ ¡°Ò»¼üÍ˳öApp¡± µÄÐèÇó
µ«ÊÐÃæÉÏÁ÷´«×Å Ì«¶à²»¿ÉÓõġ°Ò»¼üÍ˳öApp¡±¹¦ÄÜʵÏÖ
±¾ÎĽ«È«Ãæ×ܽᡰһ¼üÍ˳öApp¡±µÄʵÏÖ·½Ê½£¬²¢ÎªÄãһһʵ¼ù£¬Ï£ÍûÄãÃÇ»áϲ»¶¡£
Ŀ¼

ÐèÇó±¾ÖÊ
Ò»¼üÍ˳ö App ÆäʵÊÇ Á½¸öÐèÇó£º
1.Ò»¼ü½áÊøµ±Ç°AppËùÓеÄActivity
2.Ò»¼ü½áÊøµ±Ç°App½ø³Ì
¼´ ÐèÒª2¸ö²½Öè ²Å¿É Íê³É Ò»¼üÍ˳ö App ÐèÇó¡£ÏÂÃæ£¬ÎÒ½«¸ù¾ÝÕâÁ½¸ö²½Öè½øÐй¦ÄÜʵÏÖ½²½â¡£
¹¦ÄÜʵÏÖ
£¨²½Öè1£©Ò»¼ü½áÊøµ±Ç° App ËùÓÐ Activity
ʵÏÖ·½·¨ÀàÐÍ
Ö÷Òª·ÖΪ2Àࣺͨ¹ý Android×é¼þ & ×ÔÉíʵÏÖ
¾ßÌåÈçÏÂͼ£º

×¢£ºÉÏÊö·½·¨½ö½öÖ»ÊǽáÊøµ±Ç°AppËùÓеÄActivity £¨ÔÚÓû§µÄ½Ç¶ÈȷʵÊÇÍ˳öÁË App£©£¬µ«Êµ¼ÊÉϸÃAppµÄ½ø³Ì»¹Î´½áÊø¡£
¾ßÌå½éÉÜ
a. ͨ¹ý Android ×é¼þ£ºActivity
·½·¨1£º²ÉÓÃActivityÆô¶¯Ä£Ê½£ºSingleTask
ÔÀí
1.½« AppµÄÈë¿Ú Activity ²ÉÓà SingleTask Æô¶¯Ä£Ê½
a. Èë¿Ú Activity ´Ëʱ´¦ÓÚÕ»µ×
b. ¹ØÓÚ SingleTaskµÄÔÀíÈçÏ£º

1.µ±ÐèÒªÍ˳ö AppʱÆô¶¯Èë¿Ú Activity
2.´ËʱÈë¿Ú Activity ÉϲãµÄActivityʵÀý¶¼½«×Ô¶¯¹Ø±ÕÒÆ³ý
& ×ÔÉí±»·ÅÖÃÔÚÕ»¶¥£¨ÕâÊÇSingleTaskÆô¶¯Ä£Ê½µÄÌØµã£©
3.ͨ¹ýÔÚÈë¿Ú Activity »Øµ÷µÄonNewIntent()ÖйرÕ×ÔÉí¼´¿É
4.ÈôÔÚºóÃæµÄActivityÆô¶¯ ÈÎÎñÕ»µ×µÄActivityʱ£¬¾Í»áµ÷ÓÃÈÎÎñÕ»µ×ActivityµÄonNewIntent()
5.¾ßÌåʵÏÖ
²½Öè1£º½« AppµÄÈë¿Ú Activity ÉèÖÃ³É SingleTask Æô¶¯Ä£Ê½
// AndroidMainifest.xmlÖеÄActivityÅäÖýøÐÐÉèÖÃ
<activity
android:launchMode="singleTask"
//ÊôÐÔ
//standard£º±ê׼ģʽ
//singleTop£ºÕ»¶¥¸´ÓÃģʽ
//singleTask£ºÕ»ÄÚ¸´ÓÃģʽ
//singleInstance£ºµ¥Àýģʽ
//Èç²»ÉèÖã¬ActivityµÄÆô¶¯Ä£Ê½Ä¬ÈÏΪ ±ê׼ģʽ£¨standard£©
</activity> |
²½Öè2£ºÔÚÈë¿Ú ActivityÖØÐ´ onNewIntent()
//
Ôڸ÷½·¨´«ÈëÒ»±ê־λ±êʶÊÇ·ñÒªÍ˳öApp & ¹Ø±Õ×ÔÉí
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (intent != null) {
// ÊÇ·ñÍ˳öAppµÄ±êʶ
boolean isExitApp = intent.getBooleanExtra("exit",
false);
if (isExitApp) {
// ¹Ø±Õ×ÔÉí
this.finish();
}
}
}
|
²½Öè3£ºÔÚÐèÒªÍ˳öʱµ÷Óà exitApp()
private
void exitApp() {
Intent intent = new Intent(context, MainActivity.class);
intent.putExtra("exit", true);
context.startActivity(intent);
// ½áÊø½ø³Ì
// System.exit(0);
} |
1.Óŵã
ʹÓüòµ¥ & ·½±ã
2.ȱµã
¹æ¶¨ AppµÄÈë¿ÚActivity²ÉÓÃSingleTaskÆô¶¯Ä£Ê½
ʹÓ÷¶Î§¾ÖÏÞ£ºÖ»ÄܽáÊøµ±Ç°ÈÎÎñÕ»µÄActivity£¬Èô³öÏÖ¶àÈÎÎñÕ»£¨¼´²ÉÓÃSingleInstanceÆô¶¯Ä£Ê½£©ÔòÎÞ·¨´¦Àí
3.Ó¦Óó¡¾°
Activityµ¥ÈÎÎñÕ»
·½·¨2£º²ÉÓÃActivityÆô¶¯±ê¼Çλ
4.ÔÀí£º¶ÔÈë¿ÚActivity²ÉÓà 2 ±ê¼Çλ£º
Intent.FLAG_ACTIVITY_CLEAR_TOP£ºÏú»ÙÄ¿±êActivityºÍËüÖ®ÉϵÄËùÓÐActivity£¬ÖØÐ´´½¨Ä¿±êActivity
Intent.FLAG_ACTIVITY_SINGLE_TOP£ºÈôÆô¶¯µÄActivityλÓÚÈÎÎñÕ»Õ»¶¥£¬ÄÇô´ËActivityµÄʵÀý¾Í²»»áÖØ½¨£¬¶øÊÇÖØÓÃÕ»¶¥µÄʵÀý(
µ÷ÓÃonNewIntent()£©
¾ßÌåʹÓ㨴ÓMainActivity£¨Èë¿ÚActivity£© Ìø×ªµ½ Activity2 &
Ò»¼üÍ˳ö£©
²½Öè1£ºÔÚMainActivity ÖÐÉèÖÃ ÖØÐ´ onNewIntent()
MainActivity.Java
// ÉèÖà °´Å¥ Ìø×ªµ½Activity2
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {
startActivity(new Intent(MainActivity.this,
Activity2.class));
}
});
}
// ÔÚonNewIntent£¨£©´«ÈëÒ»±êʶ·û
// ×÷Ó㺱êʶÊÇ·ñÒªÍ˳öApp
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (intent != null) {
// ÊÇ·ñÍ˳öAppµÄ±êʶ
boolean isExitApp = intent.getBooleanExtra("exit",
false);
if (isExitApp) {
// ¹Ø±Õ×ÔÉí
this.finish();
}
}
// ½áÊø½ø³Ì
// System.exit(0);
}
} |
²½Öè2£ºÔÚÐèÒªÍ˳öµÄµØ·½£¨Activity2£©Æô¶¯MainActivity & ÉèÖñê¼Çλ
//
µ±ÐèÒªÍ˳öʱ£¬Æô¶¯Èë¿ÚActivity
Intent intent = new Intent();
intent.setClass(Activity2.this, MainActivity.class);
// ÉèÖñê¼Çλ
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// ²½Öè1£º¸Ã±ê¼Çλ×÷ÓãºÏú»ÙÄ¿±êActivityºÍËüÖ®ÉϵÄËùÓÐActivity£¬ÖØÐ´´½¨Ä¿±êActivity
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
// ²½Öè2£ºÈôÆô¶¯µÄActivityλÓÚÈÎÎñÕ»Õ»¶¥£¬ÄÇô´ËActivityµÄʵÀý¾Í²»»áÖØ½¨£¬¶øÊÇÖØÓÃÕ»¶¥µÄʵÀý(
µ÷ÓÃʵÀýµÄ onNewIntent() )
// ÔÚ²½Öè1ÖУºMainActivityµÄÉϲãµÄActivity2»á±»Ïú»Ù£¬´ËʱMainActivityλÓÚÕ»¶¥£»ÓÉÓÚ²½Öè2µÄÉèÖã¬ËùÒÔ²»»áн¨MainActivity¶øÊÇÖØÓÃÕ»¶¥µÄʵÀý&µ÷ÓÃʵonNewIntent()
// ´«Èë×Ô¼ºÉèÖõÄÍ˳öApp±êʶ
intent.putExtra("exit", true);
startActivity(intent); |
1.Óŵã
ʹÓüòµ¥ & ·½±ã
2.ȱµã
ʹÓ÷¶Î§¾ÖÏÞ£ºÖ»ÄܽáÊøµ±Ç°ÈÎÎñÕ»µÄActivity£¬Èô³öÏÖ¶àÈÎÎñÕ»£¨¼´²ÉÓÃSingleInstanceÆô¶¯Ä£Ê½£©ÔòÎÞ·¨´¦Àí
3.Ó¦Óó¡¾°
Activityµ¥ÈÎÎñÕ»
·½·¨3£ºÍ¨¹ýϵͳÈÎÎñÕ»
4.ÔÀí£ºÍ¨¹ý ActivityManager »ñÈ¡µ±Ç°ÏµÍ³µÄÈÎÎñÕ»
& °ÑÕ»ÄÚËùÓÐActivityÖð¸öÍ˳ö
5.¾ßÌåʹÓÃ
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
// 1. ͨ¹ýContext»ñÈ¡ActivityManager
ActivityManager activityManager = (ActivityManager)
context.getApplicationContext().getSystemService
(Context.ACTIVITY_SERVICE);
// 2. ͨ¹ýActivityManager»ñÈ¡ÈÎÎñÕ»
List<ActivityManager.AppTask> appTaskList
= activity
Manager.getAppTasks();
// 3. Öð¸ö¹Ø±ÕActivity
for (ActivityManager.AppTask appTask : appTaskList)
{
appTask.finishAndRemoveTask();
}
// 4. ½áÊø½ø³Ì
// System.exit(0); |
1.Óŵã
ʹÓüòµ¥¡¢·½±ã
2.ȱµã
ʹÓ÷¶Î§¾ÖÏÞ£ºÖ»ÄܽáÊøµ±Ç°ÈÎÎñÕ»µÄActivity£¬Èô³öÏÖ¶àÈÎÎñÕ»£¨¼´²ÉÓÃSingleInstanceÆô¶¯Ä£Ê½£©ÔòÎÞ·¨´¦Àí
¶Ô Android °æ±¾ÒªÇó½Ï¸ß£ºAndroid 5.0ÒÔÉÏ
3.Ó¦Óó¡¾°
Android 5.0ÒÔÉ쵀 Activityµ¥ÈÎÎñÕ»
b. ͨ¹ý Android ×é¼þ£º BroadcastReceiver
¼´Ê¹Óà BroadcastReceiver ¹ã²¥¼àÌý
ÔÀí£ºÔÚÿ¸ö Activity Àï×¢²á¹ã²¥½ÓÊÕÆ÷£¨ÏìÓ¦¶¯×÷ = ¹Ø±Õ×ÔÉí£©£»µ±ÐèÒªÍ˳ö App ʱ
·¢Ë͹㲥ÇëÇó¼´¿É
¾ßÌåʵÏÖ
²½Öè1£º×Ô¶¨Òå¹ã²¥½ÓÊÕÆ÷
public
class ExitAppReceiver extends BroadcastReceiver
{
private Activity activity;
public ExitAppReceiver(Activity activity){
this.activity = activity;
}
@Override
public void onReceive(Context context, Intent
intent) {
activity.finish();
}
}
|
²½Öè2£ºÔÚÿ¸ö Activity Àï×¢²á¹ã²¥½ÓÊÕÆ÷£¨ÏìÓ¦¶¯×÷ = ¹Ø±Õ×ÔÉí£©
public
class Activity extends AppCompatActivity {
private ExitAppReceiver mExitAppReceiver£»
// 1. ÔÚonCreate£¨£©ÖÐ×¢²á¹ã²¥½ÓÊÕÆ÷
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mExitAppReceiver = new ExitAppReceiver(this);
registerReceiver(mExitAppReceiver,new IntentFilter(BaseApplication.EXIT));
}
// 1. ÔÚonDestroy£¨£©ÖÐ×¢Ïú¹ã²¥½ÓÊÕÆ÷
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(mExitAppReceive);
} |
²½Öè3£ºµ±ÐèÒªÍ˳öAppʱ ·¢Ë͹㲥ÇëÇó
context.sendBroadcast(new
Intent(BaseApplication.EXIT));
// ×¢£º´Ë´¦²»ÄÜʹÓãºSystem.exit(0);½áÊø½ø³Ì
// ÔÒò£º·¢Ë͹㲥Õâ¸ö·½·¨Ö®ºó£¬²»»áµÈµ½¹ã²¥½ÓÊÕÆ÷ÊÕµ½¹ã²¥£¬³ÌÐò¾Í¿ªÊ¼Ö´ÐÐÏÂÒ»¾äSystem.exit(0)£¬È»ºó¾ÍÖ±½Ó±ä³ÉÖ´ÐÐSystem.exit(0)µÄЧ¹ûÁË¡£
|
1.Óŵã
Ó¦Óó¡¾°¹ã·º£º¼æ¹Ëµ¥ / ¶àÈÎÎñÕ» & ¶àÆô¶¯Ä£Ê½µÄÇé¿ö
2.ȱµã
ʵÏÖ¸´ÔÓ£ºÐèÒªÔÚÿ¸ö Activity Àï×¢²á¹ã²¥½ÓÊÕÆ÷
3.Ó¦Óó¡¾°
ÈÎÒâÇé¿öϵÄÒ»¼üÍ˳ö App£¬µ«ÎÞ·¨ÖÕÖ¹ App ½ø³Ì
ËùÒԸ÷½·¨½ö½öÊÇÔÚÓû§µÄ½Ç¶ÈÀ´Ëµ ¡°Ò»¼üÍ˳öApp¡±
c. ×ÔÉíʵÏÖ
·½·¨1£º´´½¨ Á´±í
ÔÀí£ºÍ¨¹ýÔÚApplication×ÓÀàÖн¨Á¢Ò»¸ö ActivityÁ´±í£º±£´æÕýÔÚÔËÐеÄActivityʵÀý£»µ±ÐèÒªÒ»¼üÍ˳öAppʱ°ÑÁ´±íÄÚËùÓÐActivityʵÀýÖð¸öÍ˳ö¼´¿É
¾ßÌåʹÓÃ
²½Öè1£ºÔÚBaseApplicationÀàµÄ×ÓÀàÀィÁ¢ActivityÁ´±í
public class Carson_BaseApplicaiton extends
Application {
// ´Ë´¦²ÉÓà LinkedList×÷ΪÈÝÆ÷£¬ÔöɾËÙ¶È¿ì
public static LinkedList<Activity> activityLinkedList;
@Override
public void onCreate() {
super.onCreate();
activityLinkedList = new LinkedList<>();
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks()
{
@Override
public void onActivityCreated(Activity activity,
Bundle savedInstanceState) {
Log.d(TAG, "onActivityCreated: " +
activity.getLocalClassName());
activityLinkedList.add(activity);
// ÔÚActivityÆô¶¯Ê±£¨onCreate()£© дÈëActivityʵÀýµ½ÈÝÆ÷ÄÚ
}
@Override
public void onActivityDestroyed(Activity activity)
{
Log.d(TAG, "onActivityDestroyed: "
+ activity.getLocalClassName());
activityLinkedList.remove(activity);
// ÔÚActivity½áÊøÊ±£¨Destroyed£¨£©£© д³öActivityʵÀý
}
@Override
public void onActivityStarted(Activity activity)
{
}
@Override
public void onActivityResumed(Activity activity)
{
}
@Override
public void onActivityPaused(Activity activity)
{
}
@Override
public void onActivityStopped(Activity activity)
{
}
@Override
public void onActivitySaveInstanceState(Activity
activity, Bundle outState) {
}
});
}
public void exitApp() {
Log.d(TAG, "ÈÝÆ÷ÄÚµÄActivityÁбíÈçÏ ");
// ÏÈ´òÓ¡µ±Ç°ÈÝÆ÷ÄÚµÄActivityÁбí
for (Activity activity : activityLinkedList)
{
Log.d(TAG, activity.getLocalClassName());
}
Log.d(TAG, "ÕýÖð²½Í˳öÈÝÆ÷ÄÚËùÓÐActivity");
// Öð¸öÍ˳öActivity
for (Activity activity : activityLinkedList)
{
activity.finish();
}
// ½áÊø½ø³Ì
// System.exit(0);
}
}
// ¼ÇµÃÔÚManifest.xmlÖÐÌí¼Ó
<application
android:name=".Carson_BaseApplicaiton"
....
</application> |
²½Öè2£ºÐèÒªÒ»¼üÍ˳ö App ʱ£¬»ñÈ¡¸Ã ApplicaitonÀà¶ÔÏó & µ÷ÓÃexitApp()
private Carson_BaseApplicaiton app;
app = (Carson_BaseApplicaiton)getApplication();
app.exitApp(); |
Ч¹ûͼ


1.Óŵã
Ó¦Óó¡¾°¹ã·º£º¼æ¹Ëµ¥ / ¶àÈÎÎñÕ» & ¶àÆô¶¯Ä£Ê½µÄÇé¿ö
2.ȱµã
ÐèÒª Activity ¾ÀúÕý³£µÄÉúÃüÖÜÆÚ£¬¼´´´½¨Ê±µ÷ÓÃonCreate£¨£©£¬½áÊøÊ±µ÷ÓÃonDestroy£¨£©
ÒòΪֻÓÐÕâÑù¾ÀúÕý³£µÄÉúÃüÖÜÆÚ²ÅÄܽ« ActivityÕýȷдÈë & д³ö ÈÝÆ÷ÄÚ
3.Ó¦Óó¡¾°
ÈÎÒâÇé¿öϵÄÒ»¼üÍ˳ö App ʵÏÖ
·½·¨2£ºRxBus
ÔÀí£ºÊ¹Óà RxBusµ±×÷ʼþ×ÜÏߣ¬ÔÚÿ¸ö ActivityÀï×¢²áRxBus¶©ÔÄ£¨ÏìÓ¦¶¯×÷ = ¹Ø±Õ×ÔÉí£©£»µ±ÐèÒªÍ˳öAppʱ
·¢ËÍÍ˳öʼþÇëÇó¼´¿É¡£
¾ßÌåʹÓÃ
²½Öè1£ºÔÚÿ¸ö ActivityÀï×¢²áRxBus¶©ÔÄ£¨ÏìÓ¦¶¯×÷ = ¹Ø±Õ×ÔÉí£©
public
class Activity extends AppCompatActivity {
private Disposable disposable;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity2);
// ×¢²áRxBus¶©ÔÄ
disposable = RxBus.getInstance().toObservable(String.class)
.subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception
{
// ÏìÓ¦¶¯×÷ = ¹Ø±Õ×ÔÉí
if (s.equals("exit")){
finish();
}
}
});
}
// ×¢ÒâÒ»¶¨ÒªÈ¡Ïû¶©ÔÄ
@Override
protected void onDestroy() {
if (!disposable.isDisposed()){
disposable.dispose();;
}
} |
²½Öè2£ºµ±ÐèÒªÍ˳öAppʱ ·¢ËÍÍ˳öʼþ
RxBus.getInstance().post("exit");
System.exit(0);
|
1.Óŵã
¿ÉÓë RxJava & RxBus Ïà½áºÏ
2.ȱµã
ʵÏÖ¸´ÔÓ£ºRxBus ±¾ÉíµÄʵÏÖÄÑ¶È & ÐèÒªÔÚÿ¸öActivity×¢²áºÍÈ¡Ïû¶©ÔÄ RxBus
ʹÓÃ
3.Ó¦Óó¡¾°
ÐèÒªÓëRxJava ½áºÏʹÓÃʱ
ÈôÏîÄ¿ÖÐûÓÐÓõ½RxJava & RxBus ²»½¨ÒéʹÓÃ
ÖÁ´Ë£¬Ò»¼ü½áÊøµ±Ç° AppµÄËùÓÐ ActivityµÄ ·½·¨ ½²½âÍê±Ï¡£
×¢£ºÉÏÊö·½·¨½ö½öÖ»ÊǽáÊøµ±Ç°AppËùÓеÄActivity £¨ÔÚÓû§µÄ½Ç¶ÈȷʵÊÇÍ˳öÁË App£©£¬µ«Êµ¼ÊÉϸÃAppµÄ½ø³Ì»¹Î´½áÊø
£¨²½Öè2£©Ò»¼ü½áÊøµ±Ç° App ½ø³Ì
Ö÷Òª²ÉÓà Dalvik VM±¾µØ·½·¨
×÷ÓÃ
½áÊøµ±Ç° Activity & ½áÊø½ø³Ì
¼´ ÔÚ £¨²½Öè1£©½áÊøµ±Ç° App ËùÓÐµÄ Activity ºó£¬µ÷Óø÷½·¨¼´¿ÉÒ»¼üÍ˳ö App£¨¸ü¶àÌåÏÖÔÚ½áÊø½ø³ÌÉÏ£©
¾ßÌåʹÓÃ
//
·½Ê½1£ºandroid.os.Process.killProcess£¨£©
android.os.Process.killProcess(android.os.
Process.myPid())
£»
// ·½Ê½2£ºSystem.exit()
// System.exit() = JavaÖнáÊø½ø³ÌµÄ·½·¨£º
¹Ø±Õµ±Ç°JVMÐéÄâ»ú
System.exit(0);
// System.exit(0)ºÍSystem.exit(1)µÄÇø±ð
// 1. System.exit(0)£ºÕý³£Í˳ö£»
// 2. System.exit(1)£º·ÇÕý³£Í˳ö£¬Í¨³£ÕâÖÖÍ˳ö·½Ê½
Ó¦¸Ã·ÅÔÚcatch¿éÖС£
|
ÌØ±ð×¢Òâ
¼ÙÉ賡¾°£ºµ±Ç° Activity ¡Ù µ±Ç°ÈÎÎñÕ»×îºó1¸öActivityʱ£¬µ÷ÓÃÉÏÊöÁ½¸ö·½·¨»á³öÏÖʲôÇé¿öÄØ£¿£¨¼´Activity1
- Activity2 -Activity3£¨ÔÚActivity3µ÷ÓÃÉÏÊöÁ½¸ö·½·¨£©£©
´ð£º
1. ½áÊøActivity3£¨µ±Ç° Activity £©& ½áÊø½ø³Ì
2. ÔÙ´ÎÖØÐ¿ªÆô½ø³Ì & Æô¶¯ Activity1 ¡¢
Activity2

¼´ÔÚAndroid ÖУ¬µ÷ÓÃÉÏÊöDalvik VM±¾µØ·½·¨½á¹ûÊÇ£º
1. ½áÊøµ±Ç° Activity & ½áÊø½ø³Ì
2. Ö®ºóÔÙÖØÐ¿ªÆô½ø³Ì & Æô¶¯ ֮ǰ³ýµ±Ç° Activity ÍâµÄÒÑÆô¶¯µÄ Activity
ÔÒò£º* AndroidÖеÄActivityManagerʱ¿Ì¼àÌý׎ø³Ì*¡£Ò»µ©·¢ÏÖ½ø³Ì±»·ÇÕý³£½áÊø£¬Ëü½«»áÊÔÍ¼È¥ÖØÆôÕâ¸ö½ø³Ì¡£
Ó¦Óó¡¾°
µ±ÈÎÎñջֻʣϵ±Ç°Activity£¨¼´Í˳öÁËÆäÓà Activityºó£©£¬µ÷Óü´¿ÉÍ˳ö¸Ã½ø³Ì£¬¼´ÔÚ£¨²½Öè1£©½áÊøµ±Ç°
App ËùÓÐµÄ Activity ºó£¬µ÷Óø÷½·¨¼´¿ÉÒ»¼üÍ˳öApp£¨¸ü¶àÌåÏÖÔÚ½áÊø½ø³ÌÉÏ£©
×¢£º Óë ¡°ÔÚ×îºóÒ»¸öActivityµ÷Óà finish£¨£©¡±µÄÇø±ð£ºfinish£¨£©²»»á½áÊø½ø³Ì£¬¶øÉÏÊöÁ½¸ö·½·¨»á
ÖÁ´Ë£¬¹ØÓÚ Ò»¼üÍ˳öApp µÄÁ½¸ö²½Öè½²½âÍê±Ï¡£
DemoµØÖ·
¹ØÓÚÉÏÊö˵µÄ·½·¨DemoµÄGithubµØÖ·£ºhttps://github.com/Carson-Ho/App_1shot_Finsh
×ܽá
ÔÚ ÐèҪʵÏÖ Ò»¼üÍ˳ö App ¹¦ÄÜʱ£¬Êµ¼ÊÉÏÊÇÐèÒªÍê³É2¸ö²½Ö裺
²½Öè1£ºÒ»¼ü½áÊøµ±Ç°AppËùÓеÄActivity
²½Öè2£ºÒ»¼ü½áÊøµ±Ç°App½ø³Ì
ÿ¸ö²½ÖèµÄ·½·¨×ܽáÈçÏÂ

|