Ⅰ android,想在工具类中显示对话框,如何获取主activity的context
在android中context可以作很多操作,但是最主要的功能是加载和访问资源。在android中有两种context,一种是
application
context,一种是activity
context,通常我们在各种类和方法间传递的是activity
context。
比如一个activity的onCreate:
protected
void
onCreate(Bundle
state)
{
super.onCreate(state);
TextView
label
=
new
TextView(this);
//传递context给view
control
label.setText("Leaks
are
bad");
setContentView(label);
}
把activity
context传递给view,意味着view拥有一个指向activity的引用,进而引用activity占有的资源:view
hierachy,
resource等。
这样如果context发生内存泄露的话,就会泄露很多内存。
这里泄露的意思是gc没有办法回收activity的内存。
Leaking
an
entire
activity是很容易的一件事。
当屏幕旋转的时候,系统会销毁当前的activity,保存状态信息,再创建一个新的。
Ⅱ android开发,如何用在其他工程中使用自定义的工具类的问题
在工程2中把工程1添加为依赖工程就可以了!
Ⅲ android studio 自定义工具类放在什么目录下
工具类一般放到自己建立的util包里面,比如你新建工程包名为com.example.,可以在这个下面再new一个pakage,命名为util,所有的工具类都放进去。
Ⅳ android 工具类 app有哪些
import java.util.Stack;
import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;
/**
*
* @ClassName: com.qust.myutils.AppManager
* @Description: Activity管理类:用于管理Activity和退出程序
* @author zhaokaiqiang
* @date 2014-11-20 下午4:53:33
*
*/
public class AppManager {
// Activity栈
private static Stack<Activity> activityStack;
// 单例模式
private static AppManager instance;
private AppManager() {
}
/**
* 单一实例
*/
public static AppManager getAppManager() {
if (instance == null) {
instance = new AppManager();
}
return instance;
}
/**
* 添加Activity到堆栈
*/
public void addActivity(Activity activity) {
if (activityStack == null) {
activityStack = new Stack<Activity>();
}
activityStack.add(activity);
}
/**
* 获取当前Activity(堆栈中最后一个压入的)
*/
public Activity currentActivity() {
Activity activity = activityStack.lastElement();
return activity;
}
/**
* 结束当前Activity(堆栈中最后一个压入的)
*/
public void finishActivity() {
Activity activity = activityStack.lastElement();
finishActivity(activity);
}
/**
* 结束指定的Activity
*/
public void finishActivity(Activity activity) {
if (activity != null) {
activityStack.remove(activity);
activity.finish();
activity = null;
}
}
/**
* 结束指定类名的Activity
*/
public void finishActivity(Class<?> cls) {
for (Activity activity : activityStack) {
if (activity.getClass().equals(cls)) {
finishActivity(activity);
}
}
}
/**
* 结束所有Activity
*/
public void finishAllActivity() {
for (int i = 0; i < activityStack.size(); i++) {
if (null != activityStack.get(i)) {
activityStack.get(i).finish();
}
}
activityStack.clear();
}
/**
* 退出应用程序
*/
public void AppExit(Context context) {
try {
finishAllActivity();
ActivityManager activityMgr = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
activityMgr.killBackgroundProcesses(context.getPackageName());
System.exit(0);
} catch (Exception e) {
}
}
}
Ⅳ android 里面TextView 解决特殊字符自动换行 并能解析Html数据 求大大们给个工具类吧
我只说我知道的,第一个不清楚,第二个有个工具叫jsoup可以直接解析html代码;http://www.open-open.com/jsoup这是他的中文API,可以直接下载
Ⅵ android 有没有比appmanager更好的工具类
这个也是昨天学习的,做下总结。 检查服务是否开启要写成一个工具类,方便使用,传服务的名字返回Boolean值,当然,因为需要,还要传一个上下文context。 说一下这个工具类的几个关键点: 1.方法要传context和serviceName,context用来getSystemService()操作获得ActivityManager。注意,这个方法参数要用大写的Context中的参数:Context.ACTIVITY_SERVICE,要不然会出错,还不知道哪错的,花了我10分钟的时间才知道,谨记下。 2.ActivityManager实例可以getRunningService()方法,参数是获得服务最大数目,一般100就好。 3.上面的方法返回的事一个List,要对他进行遍历,获的每一个服务的名字,在比较,返回结果。 下面是具体代码。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import java.util.List; import android.app.ActivityManager; import android.app.ActivityManager.RunningServiceInfo; import android.app.Service; import android.content.Context; public class ServiceStateUtiles { public static Boolean isServiceRunning(Context context, String serviceName) { //获取服务方法 参数 必须用大写的Context!!! ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); Listrunningserviceinfo infos = am.getRunningServices(100); for (RunningServiceInfo info : infos) { String className = info.service.getClassName(); if(serviceName.equals(className)) return true; } return false; } }/runningserviceinfo
Ⅶ android 判断是不是有网络 方法 工具类里的几个常用方法
我都是自定义的网络工具类,大概是这样写的,希望能够帮到您:
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;
import android.widget.Toast;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
/**
* 网络工具类
*
* @author shikh
*
*/
public class NetUtils {
public static final int CMNET = 20;
public static final int CMWAP = 21;
public static final int WIFI = 22;
/**
* 获得网络类型:3G /WIFI
*/
public static int getAPNType(Context context) {
int netType = -1;
ConnectivityManager connMgr = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo == null) {
return netType;
}
int nType = networkInfo.getType();
if (nType == ConnectivityManager.TYPE_MOBILE) {
Log.e("networkInfo.getExtraInfo()",
"networkInfo.getExtraInfo() is "
+ networkInfo.getExtraInfo());
if (networkInfo.getExtraInfo().toLowerCase().equals("cmnet")) {
netType = CMNET;
} else {
netType = CMWAP;
}
} else if (nType == ConnectivityManager.TYPE_WIFI) {
netType = WIFI;
}
return netType;
}
/**
* 获取Ip 地址
*
* @return
*/
public static String getLocalIpAddress() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface
.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf
.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
}
return null;
}
/**
* 判断网络状况
* @param context
* @return
*/
public static boolean isCheckNetAvailable(Context context) {
boolean isCheckNet = false;
try {
final ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo mobNetInfoActivity = connectivityManager
.getActiveNetworkInfo();
if (mobNetInfoActivity == null || !mobNetInfoActivity.isAvailable()) {
isCheckNet = false;
return isCheckNet;
} else {
isCheckNet = true;
return isCheckNet;
}
} catch (Exception ex) {
ex.printStackTrace();
}
return isCheckNet;
}
public static boolean isCheckNetAvailable(Context context, int netType) {
boolean isAvaliable = false;
ConnectivityManager manager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getNetworkInfo(netType);
if (null != info && info.isConnected()) {
isAvaliable = true;
}else{
Toast.makeText(context, R.string.net_wrok_unconnetion_text, Toast.LENGTH_SHORT).show();
}
return isAvaliable;
}
/**
* 判断网络是否可用
* @param context 上下文对象
* @return 可用返回true 不可用返回false
*/
public static boolean NetAvailable(Context context) {
if (!NetUtils.isCheckNetAvailable(context)) {
StringUtils.showToast(context, R.string.net_wrok_unconnetion_text);
return false;
}
return true;
}
}
Ⅷ android alertdialog 怎样写成工具类
在工具类的构造函数中添加一个Context的参数,并设置一个全局变量Context,这样在某个Activity类中实例化这个工具类的时候就可以将Context对象传过去了,希望对你有帮助!
Ⅸ 安卓手机有哪些逆天的工具类的app,分享一下呗
猫咪算不算