我想从状态栏通知启动活动A,当活动A已经在前面时,我想完成那个和新的开始活动A.我怎么能这样做?
答案 0 :(得分:1)
查看有关创建状态栏通知的文档。这绝对包括使用Intent和PendingIntent通知的起始和活动。
http://developer.android.com/guide/topics/ui/notifiers/notifications.html
至于活动是否已经运行,请完成并重新启动...我不确定是否可以轻松完成,具体取决于您的真实需求。您可以使用清单中的启动模式活动参数执行某些操作:
http://developer.android.com/guide/topics/manifest/activity-element.html#lmode
然后让您的活动响应(最有可能使用onNewIntent())并以编程方式“重置”自身。可能有这样的事情:
答案 1 :(得分:1)
你的意思是重新开始活动A?虽然最常见的方法是重新启动同一个类的新Intent,但我认为它使用了太多的内存。我宁愿创建一个“init”方法,当你想重新启动你的活动时,应该从onCreate调用它。例如:
public void onCreate(Bundle si){
// Call super and set your layout...
init();
}
/**
* This method should be called whenever you want to restart your activity. The
* biggest advantage is you already have your layout (setContentView() method)
*/
private void relaunchActivityA(){
// Clean or save anything you need to clean or save
init();
}
private void init(){
// Init your variables, threads, and so on
}
如果你写了'完成那个并重新开始活动A'而不是'活动B',那么就在你的startActivity()-on活动A-调用'完成'之后。例如:
// This is inside Activity A
Intent i = new Intent(this, ActivityB.class);
startActivity();
finish(); // This will be called right after 'Activity B' finishes