当前位置:  编程技术>移动开发
本页文章导读:
    ▪怎么退出应用程序        如何退出应用程序 所以为了通用想到了另外一种方法,就是当我们点击“退出程序”菜单时,可以从当前Activity跳转到主Activity(就是我们打开程序最先启动的那个Activity),通过Intent告诉主Act.........
    ▪ UISearchBar除去背景        UISearchBar去掉背景 seachBar=[[UISearchBar alloc] init];//修改搜索框背景seachBar.backgroundColor=[UIColor clearColor];//去掉搜索框背景//1.[[searchbar.subviews objectAtIndex:0]removeFromSuperview];//2.for (UIView *subview in seach.........
    ▪ NSPredicate的初始使用       NSPredicate的初步使用 NSPredicate的初步使用view plain一:  NSArray *arrayFilter = [NSArray arrayWithObjects: @"pict", @"blackrain", @"ip", nil];      NSArray *arrayContents = [NSArray arrayWithObjects: @"I am a picture.", @"I am a.........

[1]怎么退出应用程序
    来源: 互联网  发布时间: 2014-02-18
如何退出应用程序
所以为了通用想到了另外一种方法,就是当我们点击“退出程序”菜单时,可以从当前Activity跳转到主Activity(就是我们打开程序最先启动的那个Activity),通过Intent告诉主Activity我要退出程序,然后主Activity调用finish()方法即可。由于这一过程很短暂,以致于我们没观察到Activity有任何切换就退出程序了!

同样为了让大家更容易理解,我做了一个Demo.为了省事,程序运行时我直接就从MainActivity跳转到BActivity,在BActivity有个“退出程序”菜单,点击会退出程序。
定义一个工具类Sysutil用来退出程序,这样定义好处可以在多个Activity的时候复用,代码如下:

其中: intent.setFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP) 表示,开启目标activity时,会清理栈中的其他activity. 

在应用中如果要回到首页,也可以用这这个flag.
package com.tutor.exit;
import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
public class SysUtil {
	public static final int  EXIT_APPLICATION = 0x0001;
	
	private Context mContext;
	
	public SysUtil(Context context){
		this.mContext = context;
	}
	
	//完全退出应用
	public void exit(){
		
//		1.5 - 2.1之前下面两行是ok的,2.2之后就不行了,所以不通用
//		ActivityManager am = (ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE);
//		am.restartPackage("com.tutor.exit");
		
		Intent mIntent = new Intent();
		mIntent.setClass(mContext, MainActivity.class);
		//这里设置flag还是比较 重要的
		mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
		//发出退出程序指示
		mIntent.putExtra("flag", EXIT_APPLICATION);
		mContext.startActivity(mIntent);
	}
}


第三步:修改MainActivity.java,代码如下:
package com.tutor.exit;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);     
    }
    
   //这里用来接受退出程序的指令 
    @Override
    protected void onStart() {
    	int flag = getIntent().getIntExtra("flag", 0);
    	if(flag == SysUtil.EXIT_APPLICATION){
    		finish();
    	}
    	super.onResume();
    	
    }
    //程序启动后就进入了BActivity
    @Override
    protected void onResume() {
    	Intent mIntent = new Intent();
        mIntent.setClass(this, BActivity.class);
        startActivity(mIntent);
    	super.onStart();
    }
    
    
    //当activity是单例的时候,再次启动该activity就不会再调用 oncreate->onstart这些方法了
    @Override
    protected void onNewIntent(Intent intent) {
    	int flag = getIntent().getIntExtra("flag", 0);
    	if(flag == SysUtil.EXIT_APPLICATION){
    		finish();
    	}
    	super.onNewIntent(intent);
    }
}


第四步:新建一个Activity命名为BAcivity.java,记得要在配置文件里申明哦~代码如下:

package com.tutor.exit;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class BActivity extends Activity {
	public static final int MENU_EXITAPPLICATION = Menu.FIRST;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		TextView mTextView = new TextView(this);
		mTextView.setText("Welcome to Frankie's blog.");
		setContentView(mTextView);
	}
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		menu.add(0, MENU_EXITAPPLICATION, 0,"退出程序");
		return super.onCreateOptionsMenu(menu);
	}
	
	
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		if(item.getItemId() == MENU_EXITAPPLICATION){
			//其他Activity退出程序这样调用就ok了
			SysUtil mSysUtil= new SysUtil(BActivity.this);
			mSysUtil.exit();
		}
		return super.onOptionsItemSelected(item);
	}
} 

第五步:运行程序,直接进入了BActivity,点击菜单效果如下:


点击退出程序菜单,管你SDK是什么版本,就可以完全退出程序啦,有木有!有木有!呵呵~



这里要说明一下,如果我们的主Activity是单例模式的话,也就是launcheMode="singleTop|singleTask"如下面代码:
   <activity android:name=".MainActivity"
        		  android:launchMode="singleTop"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

这时MainActivity执行了onNewIntent()方法,退出程序 在这里完成,以上只是我个人的片面理解,如果大家有更好的通用方法,可以告诉我,相互学习,谢谢大家!!!

    
[2] UISearchBar除去背景
    来源: 互联网  发布时间: 2014-02-18
UISearchBar去掉背景
seachBar=[[UISearchBar alloc] init];

//修改搜索框背景

seachBar.backgroundColor=[UIColor clearColor];

//去掉搜索框背景

//1.

[[searchbar.subviews objectAtIndex:0]removeFromSuperview];

//2.

for (UIView *subview in seachBar.subviews)



if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")])



[subview removeFromSuperview]; 

break; 



}

//3自定义背景

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"40-di.png"]];

    [mySearchBar insertSubview:imageView atIndex:1];

    [imageView release];

//4输入搜索文字时隐藏搜索按钮,清空时显示

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar { 

searchBar.showsScopeBar = YES; 

[searchBar sizeToFit]; 

[searchBar setShowsCancelButton:YES animated:YES]; 

return YES; 



- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar { 

searchBar.showsScopeBar = NO; 

[searchBar sizeToFit]; 

[searchBar setShowsCancelButton:NO animated:YES]; 

return YES; 



//改变搜索按钮文字

//改变UISearchBar取消按钮字体

for(id cc in [searchBar subviews])

    {

if([cc isKindOfClass:[UIButton class]])

        {

            UIButton *btn = (UIButton *)cc;

            [btn setTitle:@"搜索"  forState:UIControlStateNormal];

        }

    }

    
[3] NSPredicate的初始使用
    来源: 互联网  发布时间: 2014-02-18
NSPredicate的初步使用
NSPredicate的初步使用

view plain
一: 
NSArray *arrayFilter = [NSArray arrayWithObjects: @"pict", @"blackrain", @"ip", nil]; 
    NSArray *arrayContents = [NSArray arrayWithObjects: @"I am a picture.", @"I am a guy", @"I am gagaga", @"ipad", @"iphone", nil]; 
     
    //我想过滤arrayContents的话只要循环 arrayFilter就好了 
     
    int i = 0, count = [arrayFilter count]; 
    for(i = 0; i < count; i ++) 
    { 
        NSString *arrayItem = (NSString *)[arrayFilter objectAtIndex:i]; 
        NSPredicate *filterPredicate = [NSPredicate predicateWithFormat: @"SELF CONTAINS %@", arrayItem]; 
        NSLog(@"Filtered array with filter %@, %@", arrayItem, [arrayContents filteredArrayUsingPredicate: filterPredicate]);                                          
    } 




view plain
二: 
NSArray *arrayFilter2 = [NSArray arrayWithObjects:@"abc1", @"abc2", nil]; 
    NSArray *arrayContent2 = [NSArray arrayWithObjects:@"a1", @"abc1", @"abc4", @"abc2", nil]; 
    NSPredicate *thePredicate2 = [NSPredicate predicateWithFormat:@"NOT (SELF in %@)", arrayFilter2]; 
    NSLog(@"Filtered array with filter %@, %@", arrayFilter2, [arrayContent2 filteredArrayUsingPredicate:thePredicate2]); 
     

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3