打开另一个Activity后无法重新打开Activity

时间:2017-01-12 05:22:17

标签: javascript android

我试图在这个流程中打开一个活动:

活动1(直接来自通知) - > MainActivity(来自Activity1的onBackPress) - > Activity1(来自MainActivity)

但由于某些原因我无法打开Activity1(来自MainActivity),我的logcat没有打印任何错误或警告。

并且我也可以正常打开Activity1(来自MainActivity),如果我只是在应用程序启动时启动MainActivity而不首先打开Activity1(直接来自通知)。

这是一些代码

  1. 这从通知到打开Activity1

    Intent intent = new Intent(this, Activity1.class);
    startActivity(inten);

  2. 这来自Activity1 onBackPress转到MainActivity

  3. Intent inten=new Intent(this, MainActivity.class);    
    inten.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(inten);

    1. 最后从MainActivity打开Activity1
    2. Intent go = new Intent(context,Activity1.class);
      go.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      context.startActivity(go);

      并且注意我从MainActivity打开Activity1而不是直接从recyclerview的适配器类打开,这就是为什么那里有“FLAG_ACTIVITY_NEW_TASK”标志。

      请帮帮我,我还想念别的吗?

      之前感谢。

      另外:

      public Adapterbanner(Context context, List<ObjectVoucher> itemList, int wdth) {
              this.itemList = itemList;
              this.context = context;
              this.wdth= wdth;
          }

      logcat print:

      I/Timeline: Timeline: Activity_launch_request id:com.xxx.xxx time:32028626

      finnaly发现了问题,我只需要添加这个标志:

      Intent.FLAG_ACTIVITY_CLEAR_TOP

3 个答案:

答案 0 :(得分:0)

试试这个:

Intent go = new Intent(context,Activity1.class);
go.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(go);

当您使用setFlags时,您正在替换旧标志...当您使用addFlags时,您正在添加新标记......

在Recylerview适配器中:

 private final Context context;

public MyViewHolder(View itemView) {
    super(itemView);
    context = itemView.getContext();
    ...
}

现在使用上下文来启动活动..

答案 1 :(得分:0)

如果您要回到第一个[主要]活动,那么您不必在第二个活动[您切换的地方]放置任何代码。

将此代码放在FirstActivity

中方法“onClick”的代码下面
if (isset($_GET['id'])) {
$script_url = "http://localhost/scripts/myscripts/";
  $row = dbgetrow("SELECT * FROM games WHERE id = %s",$_GET['id']);
  if ($row) {
    Header( "HTTP/1.1 301 Moved Permanently" ); 
    Header( "Location: ".$script_url."/game/".$row['id']."/".seo_title($row['name'])); 
  } else {
    Header( "HTTP/1.1 404 Not found" ); 
  }
}

当在SecondActivity按下后退按钮时,它会自动切换到FirstActivity [如果不是android:launchMode =“singleInstance”写入Mainfest]

答案 2 :(得分:0)

finnaly发现了这个问题,我只需要添加这个标志就可以了:

&#13;
&#13;
Intent go = new Intent(context,Activity1.class);           
go.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(go);
&#13;
&#13;
&#13;

这适合我。