从android中的通知开始新活动

时间:2011-04-24 07:04:56

标签: android notifications

我想从状态栏通知启动活动A,当活动A已经在前面时,我想完成那个和新的开始活动A.我怎么能这样做?

2 个答案:

答案 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())并以编程方式“重置”自身。可能有这样的事情:

Android restart my activity

答案 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