gpt4 book ai didi

Android:如何通过按钮启动墙纸服务?

转载 作者:行者123 更新时间:2023-11-29 14:01:11 31 4
gpt4 key购买 nike

我有一个测试动态壁纸,我想从一个 Activity 开始。目前,当我在模拟器上运行该项目时,它会立即出现在动态壁纸选择器中。到处搜索后,我仍然找不到一种方法让它只在我的主要 Activity 中按下一个按钮后才显示在那里。

我尝试在我的主要 Activity 中引入一个静态 bool 值,isnotpressed,并在按钮 onClick() 中将其设置为 false。然后我在 wallpaperservice 类中使用了 stopSelf() 而 isnotpressed 为真。不幸的是,这一切都无济于事,而且我认为我无论如何都不会以正确的方式进行。我也试过this ,但它也没有用。在这里将不胜感激任何帮助。

这是主要 Activity :

public class TestProjectActivity extends Activity{

static boolean isnotPressed;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

isnotPressed = true;

final Button b1 = (Button) findViewById(R.id.button1);

b1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
isnotPressed = false;
}
});

}

这是墙纸服务的一部分:

public class MyWallpaperService extends WallpaperService {




@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();

while(TestProjectActivity.isnotPressed){stopSelf();}


}

最佳答案

试试这个:

    Intent i = new Intent();
if (Build.VERSION.SDK_INT > 15)
{
i.setAction(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
String pkg = MyPreferencesActivity.class.getPackage().getName();
String cls = MyPreferencesActivity.class.getCanonicalName();
i.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(pkg, cls));
}
else
{
i.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER);
}
startActivityForResult(i, 0);

关于Android:如何通过按钮启动墙纸服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9438636/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com