2015-09-24 76 views
0

我的MainActivity聲明瞭以下HOME,DEFAULT類別和MAIN Action。我也選擇應用程序作爲默認啓動器。當我點擊後按下它按預期關閉MainActivity。但是如果我離開MainActivity運行並重新啓動設備,我無法離開MainActivity!按下我調用finish()的onBackPress(),按預期暫停活動。但後來我看到onCreate調用(),onResume()和MainActivity像小丑一樣備份!我可以做什麼?這隻發生在活動仍在運行時重啓設備之後。重啓後無法關閉Android應用程序

我做的一切,我可以擺脫這個活動裏面包括

onBackPressed(){ 
    ActivityCompat.finishAffinity(MainActivity.this); 
     finish(); 
} 

我已經看到開始活動擺在首位建議,FLAG_ACTIVITY_CLEAR_TOP但其操作系統,而不是我。

我不能離開應用程序!

+0

退房:http://stackoverflow.com/questions/2280361/app-always-starts-fresh-from-root-activity-instead-of-resuming-背景狀態 –

回答

1

將此代碼添加到onBackPressed()方法中。

Intent intentExit = new Intent(Intent.ACTION_MAIN); 
intentExit.addCategory(Intent.CATEGORY_HOME); 
intentExit.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intentExit); 
finish(); 
0

這只是一個想法,不知道是否會工作完全

嘗試創建一個廣播接收器

  1. 獲取手機重啓的情況下
  2. 關閉應用程序

在的Manifest.xml

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 


<receiver android:name=".BootCompleteReceiver"> 
      <intent-filter>  
       <action android:name="android.intent.action.BOOT_COMPLETED"/> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
</receiver> 

BootCompleteReceiver.java

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent;  

public class BootCompleteReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
      Intent i = new Intent(context, MainActivity.class); 
      i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      i.addFlags (Intent.FLAG_ACTIVITY_SINGLE_TOP); 
      i.putExtra("close_activity",true); 
      context.startActivity(i); 
    } 
} 

MainActivity.java添加此塊

@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 
    if(intent.getBooleanExtra("close_activity",false)){ 
     this.finish(); 
    } 
} 

參考文獻:

  1. Android BroadcastReceiver, auto run service after reboot of device
  2. Close application from broadcast receiver
相關問題