我试图在这个流程中打开一个活动:
活动1(直接来自通知) - > MainActivity(来自Activity1的onBackPress) - > Activity1(来自MainActivity)
但由于某些原因我无法打开Activity1(来自MainActivity),我的logcat没有打印任何错误或警告。
并且我也可以正常打开Activity1(来自MainActivity),如果我只是在应用程序启动时启动MainActivity而不首先打开Activity1(直接来自通知)。
这是一些代码
这从通知到打开Activity1
Intent intent = new Intent(this, Activity1.class);
startActivity(inten);
这来自Activity1 onBackPress转到MainActivity
Intent inten=new Intent(this, MainActivity.class);
inten.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(inten);
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
答案 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发现了这个问题,我只需要添加这个标志就可以了:
Intent go = new Intent(context,Activity1.class);
go.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(go);
&#13;
这适合我。