2012-07-30 144 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);