2012-07-30 97 views
2

我發現使用應用程序停留在後臺開始新活動很困難。 這裏是我的代碼:活動已移至開始活動

public class App1 extends Activity{ 

    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     registerReceiver(batteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 
    } 

    private BroadcastReceiver batteryInfoReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context c, Intent i) { 
      Toast.makeText(getApplicationContext(), "TEST", Toast.LENGTH_LONG).show(); 
      Intent intent = new Intent("App2.intent.action.Launch"); 
      intent.putExtra("startedByApp", true); 
      startActivity(intent); 
     } 
    } 

    @Override 
    public void onBackPressed() { 
     moveTaskToBack(true); 
    } 
} 


public class App2 extends Activity{ 

    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Toast.makeText(getApplicationContext(), "TEST 2", Toast.LENGTH_LONG).show(); 
    } 
} 

當應用1是在前臺正常工作。 當應用1是在後臺(moveToBack)顯示「TEST」,但它不會啓動應用2(有我的屏幕上沒有「TEST 2」。

傢伙,你能幫幫我嗎?

+0

你爲什麼不嘗試使用Log.d()而不是Toast?Toast通常不是很好的調試工具,特別是當你使用getApplicationContext() – mfrankli 2012-07-30 18:35:48

+0

時可能需要一個標誌'intent.addFlag(Intent.FLAG_ACTIVITY_NEW_TASK);' – Sunny 2012-07-30 18:41:07

+0

@mfrankli: 這是個好主意 - 我是一個初學者程序員,我想使用它 – user1411291 2012-07-30 19:01:18

回答

1

你需要一個標誌intent.addFlag(Intent.FLAG_ACTIVITY_NEW_TASK);