public void start()
{
Intent v1 = new Intent(context, MyActivity.class);
v1.putExtra("bid", 123456);
activity.startActivity(v1);
}我现在,在一个Activity的一个start()方法里启动了另一个Activity.
但是用startActivity这种方式启动以后,获取不到MyActivity的对象,就无法销毁他.
请问有什么办法能销毁他.
{
Intent v1 = new Intent(context, MyActivity.class);
v1.putExtra("bid", 123456);
activity.startActivity(v1);
}我现在,在一个Activity的一个start()方法里启动了另一个Activity.
但是用startActivity这种方式启动以后,获取不到MyActivity的对象,就无法销毁他.
请问有什么办法能销毁他.
解决方案 »
- 各位大侠 ,微信中的“听首老歌”的页面怎样实现的???
- 谁能解释一下以下代码?
- 求发几个自己写的几个简单的android文件,好让我看看里面的代码
- android测试
- android增删改sqlite问题(bug还是什么?)
- Android 信息提示
- 在两个Activity之间传递ArrayList对象的问题,调二天了
- 关于Unfortunately, HelloWorlds has stopped 新手问题
- android代码如何用命令把raw文件里的文件复制到system/app里面(已经root)
- 安卓小白:AndroidManipulatefest里面的处理两个“android:name”
- 仿微信悬浮框效果
- android应用出现反应特别慢的情况
添加是在你的activity的Create()方法中 调用 ActivityManager.getInstance().addActivity(this);public class ActivityManager {
private List<Activity> activities = null;
private static ActivityManager instance = new ActivityManager(); private ActivityManager() {
activities = new LinkedList<Activity>();
} /**
* 单例模式中获取唯一的MyApplication实例 * * @return
*/
public static ActivityManager getInstance() {
return instance;
} // 添加Activity到容器中
public void addActivity(Activity activity) {
if (activities != null && activities.size() > 0) {
if (!activities.contains(activity)) {
activities.add(activity);
}
} else {
activities.add(activity);
}
} // 遍历所有Activity并finish
public void finishActivity() {
if (activities != null && activities.size() > 0) {
for (Activity activity : activities) {
if (!activity.isFinishing()) {
activity.finish();
}
}
}
activities.clear();
} /**
* 获得当前显示的Activity
*
* @return
*/
public String getRunningActivityName() {
if (null != activities && activities.size() > 0) {
return activities.get(activities.size() - 1).toString();
}
return null;
} //获得当前正在显示的activity
public Activity getRunningActivity() {
if (null != activities && activities.size() > 0) {
return activities.get(activities.size() - 1);
}
return null;
} public void finishActivityByName(String name){
if (activities != null && activities.size() > 0) {
for (Activity activity : activities){
if(null != activity){
String activityName = activity.toString();
if(activityName.contains(name) && !activity.isFinishing()){
activity.finish();
}
}
}
}
}
}
无法直接在MyActivity写代码?MyActivity是其他应用的Activity?
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// 收到广播后做一些处理,比如销毁activity
((Activity)context).finish();
}
};
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
System.out.println(activity.getComponentName().getClassName() + "app.onActivityCreated");
// 在这里判断是不是目标activity,如果是目标activity的话,可以给activity注册一个广播接收器,在收到广播后finish掉自己
if (activity.getComponentName().equals("")) {
IntentFilter filter = new IntentFilter();
filter.addAction("custom action");
activity.registerReceiver(receiver, filter);
}
} @Override
public void onActivityStarted(Activity activity) {
} @Override
public void onActivityResumed(Activity activity) {
} @Override
public void onActivityPaused(Activity activity) {
} @Override
public void onActivityStopped(Activity activity) {
} @Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) { } @Override
public void onActivityDestroyed(Activity activity) {
System.out.println(activity.getComponentName().getClassName() + "app.onActivityDestroyed");
// 在这里判断是不是目标activity,如果是目标activity的话,activity解注册广播接收器
if (activity.getComponentName().equals("myActivity")) {
activity.unregisterReceiver(receiver);
}
}
});
}
}